typedef和define的作用域
2016-01-09 04:04
183 查看
typedef:
如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾;
如果放在某个函数内,定义域就是从定义开始直到该函数结尾;
#define:
不管是在某个函数内,还是在所有函数之外,作用域都是从定义开始直到整个文件结尾。
如:
typedef …//此处开始到文件结尾
#define …//此处开始到文件结尾
int negate(int num)
{
…
typedef …//此处开始到该函数结束。注意,该函数内,此定义前,也不能用
#define …//此处开始到文件结尾
…
}
typedef …//此处开始到文件结尾
#define …//此处开始到文件结尾
void show()
{
typedef …//此处开始到该函数结束。
#define …//此处开始到文件结尾
}
…
总结:
(1)
不管是typedef还是define,都不能在定义之前使用;
(2) typedef受函数范围影响,而define不受;
(3)
不管是typedef还是define,其作用域都不会扩展到别的文件,即使是同一个程序的不同文件,也不能互相使用。
相关文章推荐
- *Valid Number
- CGColor
- zend引擎中php扩展返回值的宏
- 02_spring通过xml获取ApplicationContext
- Java设计模式(Design Patterns In Java)读书摘要——第1章 绪论
- 声明php内核zend中的参数小结
- zend中常见的宏定义操作
- php内核中与线程相关的操作
- 138_二分搜索 (lower_bound)
- 01_spring基本命名空间及各种类型注入方式
- 每秒千万网络包的线速 SYN/DNS flooding
- 如何实践设计原则
- vim 基础学习之可视模式
- mybatis缓存机制
- mybatis延迟加载
- Codeforces 615D Multipliers 【组合数学】
- Codeforces 615B Longtail Hedgehog 【dp】
- 基于Python SimpleHTTPServer.py的修改脚本:HTTP文件服务器,修正中文目录列表,支持视频文件在线播放
- hdoj 4578 Transformation 【线段树 区间加、乘、修改、幂次求和】
- Codeforces 615A Bulbs 【水题】