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

2 篇文章 0 订阅
2 篇文章 0 订阅

以下测试使用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为变量名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值