typedef在C和C++的区别?
一、struct定义结构体
1、先声明结构体类型再定义变量名
struct name
{
member ..
};
name A;...
如:
struct student
{
int a;
};
student stu1,stu2;
若在c语言中定义,应该加上struct:
struct student stu1,stu2;
2、一边声明类型同时定义变量
struct name{
member..
}A,B..;
struct apple
{
int b;
}app1;//app1是一个变量
3、直接定义结构体类型变量
struct
{
int a;
}app2;
二、typedef struct定义结构体
例子:
typedef struct rabbit
{
int rab;
}tt;//tt实际是struct rabbit的别名
即
先定义一个结构体类型
struct rabbit
{
int rab;
};
然后再为这个结构体类型起别名
typedef struct rabbit tt;
此外:
typedef struct{
int a;
}A,A1,A2,*A;
相当于:
typedef struct{
int a;
}A;
typedef A A1;
typedef A A2;
typedef A *A;
此时,A1,A2,A都是结构体类型,声明变量时用任何一个都可以。
而如果在C++中没有typedef关键字,它们是不同的三个对象。
typedef struct rabbit
{
int a;
}A,*A;
其中:A equal to struct rabbit;
*A equal to struct *rabbit;
(注:此部分内容参考自网络其他博客的内容,自己做个笔记记下来。总是混淆)