typedef & #define 的区别,
(1)#define 只是简单的文本替换。
#define p char*;
char* a= "hi";
p sp1, sp2;
sp1 = a;
sp2 = a; //错误,其实是char sp2,而不是char* sp2。如果是typedef char* p,则正确
typedef char *pStr;
char strin[4]="abc";
const char *p1=strin;
const pStr p2=strin;
p1++;
p2++; //错误,应将pStr看作是一个类型像int样的。如果是#define,那就是文本替换,则正确
的。
(1)#define 只是简单的文本替换。
#define p char*;
char* a= "hi";
p sp1, sp2;
sp1 = a;
sp2 = a; //错误,其实是char sp2,而不是char* sp2。如果是typedef char* p,则正确
typedef char *pStr;
char strin[4]="abc";
const char *p1=strin;
const pStr p2=strin;
p1++;
p2++; //错误,应将pStr看作是一个类型像int样的。如果是#define,那就是文本替换,则正确
的。