C语言库函数---typedef和define

1、typedef和define区别
(1)原理不同
#define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错
typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typedef。用typedef定义数组、指针、结构等类型会带来很大的方便,不仅使程序书写简单,也使意义明确,增强可读性。
(2)对指针的操作不同
#define INTPTR1 int*
typedef int* INTPTR2;
INTPTR1 p1, p2;
INTPTR2 p3, p4;
含义分别为,
声明一个指针变量p1和一个整型变量p2
声明两个指针变量p3、p4
(3)typedef创建的符号名只受限于类型,不能用于值
(4)typedef创建的作用域受限制域其存在的位置

使用typedef的原因是:为经常出现的类型创建一个方便、易于识别的类型名

发布了56 篇原创文章 · 获赞 6 · 访问量 6876

猜你喜欢

转载自blog.csdn.net/qq_23929673/article/details/95727152