C中宏定义与typedef的简单认识

说到C中的宏定义,我们肯定会想到define,这里就简单讲讲C语言中宏定义define和typedef的区别

1.首先是在写法上,define定义宏时后面没有分号同时前面要加#,而typedef后面有

2.程序处理上,define在预处理阶段处理,后面编译时遇到相应的宏就进行替换,不会检测错误,而typedef则是编译阶段处理,不是简单替换处理,同时也会检查错误

3.作用上,两者都可以为类型取别名(这个类型取别名更准确说只有typedef算是),但是define还可以定义常量等

4.作用域上,宏定义后面都可以用,而typedef有严格要求,定义的位置决定作用的范围

补充:2中说到define定义的宏用到时简单替换,而typedef不是简单替换,一个经典例子:#define INT int*; INT a,b;这里a的类型是int*,而b的类型是int.。typedef int * INT  INT a,b;这里的a,b都是int *类型,所以这里也印证了3中准确说typedef才能算是类型取别名。涉及到const和*组合时也存在明显差异。当然,这些也只是我目前的简单认识。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值