0%

宏定义和typedef

宏定义和typedef区别

  • 宏主要用于定义常量及书写复杂的内容;typedef主要用于定义类型别名。

  • 宏替换发生在编译阶段之前,属于文本插入替换;typedef是编译的一部分。

  • 宏不检查类型;typedef会检查数据类型。

  • 宏不是语句,不在在最后加分号;typedef是语句,要加分号标识结束。

  • 注意对指针的操作,typedef char * p_char和#define p_char char *区别巨大。

    一个经典例子:

    1
    2
    #define INT int*
    INT a,b;

    这里a的类型是int*,而b的类型是int。

    1
    2
    typedef int * INT  
    INT a,b;

    这里的a,b都是int *类型。

Welcome to my other publishing channels