1
2
3
|
typedef
char
* pStr;
#define pStr char*
|
答案与分析:
通常讲,typedef要比#define要好,特别是在有
指针的场合。请看例子:
1
2
3
4
5
6
7
|
typedef
char
* pStr1;
#define pStr2 char*
pStr1 s1,s2;
pStr2 s3,s4;
|
在上述的
变量定义中,s1、s2、s3都被定义为char *,而s4则定义成了char,不是我们所预期的
指针变量,根本原因就在于#define只是简单的字符串替换而typedef则是为一个类型起新名字。
上例中define语句必须写成 pStr2 s3, *s4; 这这样才能
正常执行。
详细区别见百度百科及相关资料