#define的用法
#define为一宏定义语句,通常用它来定义常量,以及用它来实现宏。它本身并不在编译过程进行,而是在这之前的预处理过程中已经完成了,但也因此难以发现潜在的错误以及其他代码维护问题。
typedef的用法
typdef常用来定义一个标识符以及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。
在刷笔试题的时候有问到这个:
test.c
文件中包括如下语句:
#define ptr1 int*
typdef int* ptr2;
ptr1 n1,n2;
ptr2 n3,n4;
前者展开后的结果是:int* n1,n2;类似于int* n1,int n2;
后者展开后的结果是:int* n3,n4;类似于int* n1,int* n2;
区别的实质所在还是#define与typedef的含义不同:
- #define 只是简单的字符串替代。
- typedef则是类型的重新定义,其所定义的类型是一体的。