#define 与 typedef 的区别

#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则是类型的重新定义,其所定义的类型是一体的。
发布了92 篇原创文章 · 获赞 32 · 访问量 4665

猜你喜欢

转载自blog.csdn.net/AngelDg/article/details/104087110