Typedef与define

    宏定义define只是简单的字符替换,并不会检查错误,如果不小心写错了,它还是会带入程序中,然后在编译时进行错误查找。例如:
    #define R 9
    int i=R*4;//相当于i=9*4;
如果把9写成了g,它还是会带入等式,i=g*4;在编译时就会报错。
    类型定义typedef给已有的类型换一个名字,如果写错了系统会自动报错,这一点与宏定义define不同,例如:
    typedef int Elemtype;
    Elemtype a;//此时的a就是一个整型,相当于int a;
宏定义define和类型定义typedef还有一个很大的区别,例如:

    #define PINT int*
    PINT a,b;//此时a是整型指针变量,而b是整型变量
 
    typedef int* PINT;
    PINT a,b;//此时a,b都是整型指针变量

所以在使用时一定要注意用宏定义define合适,还是类型定义typedef合适。

猜你喜欢

转载自blog.csdn.net/niumengting/article/details/82808989