typedef和#define的区别
2016-08-15 16:05
316 查看
其实一般情况下,这两种办法都能够达到预期的效果。 但是有时候要注意define宏的副作用,比如下面这种情况: typedef unsigned int *uint; //这时候uint是一个指向unsigned int数据的指针类型,注意这里是指针类型了 #define uint unsigned int * //下文每出现uint的时候就用unsigned int * 来代替,这是这个语句的本质原理(该宏的作用) 又如有以下语句: uint a, b ; 如果是用上述typedef语句,则这里a,b均是一个指针变量,这个指针指向unsigned int类型的数据, 而如果用的是define语句,则这里展开后变成: unsigned int * a, b; 这里a是一个指针了, 而b是一个unsigned int类型的数据。 注意这些就基本差不多了。 详情请参考《C陷阱与缺陷》一书6.2章!
相关文章推荐
- Oracle的三种高可用集群方案
- C3P0连接池
- 函数指针&指针函数
- iOS学习笔记 strong与copy 深浅复制
- 04.canvas标签之绘制线和三角形
- HDU 1520.Anniversary party【树型DP】【8月15】
- Mac上更新Ruby
- JavaScript——Throw、Try 和 Catch
- 智能厨房重构-使用Bmob后端云实现朋友圈的功能
- 国产dwz jui使用心得
- python学习笔记-python安装
- If 跟 switch 的区别
- 下拉框级联
- csdn博客吐槽
- 微信公众号java DEMO
- 【USACO题库】1.2.2 Transformations方块转换
- 国内IT技术博客对比
- 华为OJ——iNOC产品部--完全数计算
- linux系统下文件查找
- datasource与session以及sessionFactory的联系