一.define 是宏定义,typedef是类型定义
#define Elemtype int
typedef long byte_4
define 是宏定义,typedef是类型定义 相当于给变量起别名,两者是有区别的 define 是简单的字符串替换 ,而typedef是真正意义上的类型定义。#define 后面没有封号,typedef后面有封号。
#define pstr1 char*
typedef char* pstr2;
假如定义pstr1 s1,s2; s1是char *, 而对s2就没有定义
pstr2 s3,s4; 此时s3,s4都是char*类型的变量。
2.定义一个结构体变量
struct student
{
char * name;
int age;
} ;
定义了一个结构体类型 类似与 int整形,char字符型,struct student 合在一起成为一个类型,是结构体类型。
结构体类型定义有两种形式,1.可以在定义结构体的时候定义变量stu 2. 也可以在函数内部使用的时候定义结构体变量 struct studentstu ; 注意struct student不能分开,不能写成student stu,只有他两在一起才是属于student结构体类型。
struct
{
char * name;
int age;
} stu;
3.正确理解 typedef 与结构体类型结合
typedef struct student
{
char * name;
int age;
} stu;
上面代码的正确理解为:给 struct student结构体类型 重新定义为stu ,也就是说给struct student这个结构体起一个别名叫做stu;