您的位置:首页 > 编程语言 > C语言/C++

C/C++中的typedef struct 和 struct区别

2012-04-06 18:04 281 查看
以下测试使用Codeblocks编译器,Mingw编译环境。

在C编译环境下:

1、

typedef struct Student//Student 可省
{
int a;
}Stu;//这里相当于给struct Student,typedef一个别名Stu
Student  a;//错误
struct Student a//正确
Stu a;//正确,Stu相当于struct Student的别名
typedef struct Student
{
int a;
struct Student *S;//如果是结构体内这样用,需要在上面写,后面Stu不管用。
}Stu;


2、

struct Student//这里struct Student 相当于一个数据类型
{
int a;
}Stu;//这里写Stu是一个变量,也就相当于后面如此定义struct Student Stu;
typedef struct Student A;
struct Student a;//正确
A b;//正确


在C++编译环境下(C++继承C后有区别):

1、

typedef struct Student
{
int a;
}Stu;//这里Stu是Student的一个别名相当typedef Stu Student。
Student  a;//正确
struct Student a;//正确
Stu a;//正确,Stu相当于struct Student的别名


2、

struct Student
{
int a;
}Stu;//这里写Stu依然是一个变量。
Student a;//正确


综上所述,C++中的用法简单,typedef struct A{...}B; A,B都可以当成数据类型用;struct A{...}B;A为数据类型名,B为变量名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: