宏定义只是简单的字符串代换,是在预处理完成的, 而typedef是在编译时处理的, 它不是简单的代换, 而是对类型说明符重新命名. 被命名的标识符具有类型定义说明的功能.
宏定义为了更符合人习惯的代码, typedef是 码代码的时候 更清晰.
#include <stdio.h>
#define INT1 int
typedef int INT2;
#define INT3 int*
typedef int* INT4;
int main(int argc, const char * argv[])
{
INT1 a, b;
a = 10;
b = 20;
printf("a=%d,b=%d\n", a, b);
INT2 c, d;
c = 30;
d = 40;
printf("c=%d,d=%d\n", c, d);
//************************ stone ***
INT3 e, f; // int *e,f ---> int *e , int f
e = &a;
f = 20;
printf("e=%d,f=%d\n", *e, f);
INT4 h, i; // int * h, int * i
h = &c;
i = &d;
printf("h=%d,i=%d\n", *h, *i);
return 0;
}