#define 和typrdef

文章讲述了C语言中的预处理宏#define与关键字typedef的区别,前者在预处理阶段进行字符串替换,无类型检查,后者在编译时提供类型别名,增强了代码可读性和类型安全性。还特别提到了它们在定义指针和函数指针时的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.#define和typedef的区别  (宏,关键字,预处理,编译,检查)

#define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错。

typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typedef。用typedef定义数组、指针、结构等类型会带来很大的方便,不仅使程序书写简单,也使意义明确,增强可读性。

注意#define和typedef定义指针的区别

#define myptr int* p

myptr a,b;//a是int * a,    b是 int b

typedef  int*  myptr;

myptr a,b;//a是int * a,    b是 int* b

补充:int *p,q   表示p是指针变量,q是int变量

typedef int (*funtion)()  //表示函数指针,重新命名为funtion

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值