- typedef的注意点
1、typedef是定义了一种类型的新别名,与宏不同,它不是简单的字符串替换,例如:
定义typedef char* ptr,实现int my_strcmp(const ptr,const ptr),const ptr并不是相当于const char*,而是char* const.
2、typedef 在语法上是一个存储类的关键字,它并不真正影响对象的存储特性,例如:
typedef static int a;编译会失败,提示指定了一个以上的存储类。 - typedef与宏的区别
在C/C++语言中,typedef用来定义一个标识符和关键字的别名,不实际分配内存空间,它可以增强程序的可读性,以及标识符的灵活性,但它会有非直观性的缺点。,而宏通常用来定义常量,和用来实现一些冗杂的宏,本身并不在编译过程中进行,而是在预处理过程就已经完成,因此难以发现潜在的错误和代码维护问题,宏定义只是简单的字符串替换,而typedef不是,它的新名字具有一定的封装性,例如:
typedef int* pINT;
和
#define pINT2 int*
他们的差别是 pINT a,b;等同于int* a,int* b,表示定义了两个整形指针变量,而pINT2 a,b;等同于int* a,b;表示定义了一个整形变量a与整形变量b。
C语言:typedef与宏的区别
最新推荐文章于 2023-06-27 09:00:24 发布