您的位置:首页 > 编程语言 > C语言/C++

typedef和define作用域的区别

2017-07-07 16:33 204 查看
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,其作用域都不会扩展到别的文件,即使是同一个程序的不同文件,也不能互相使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 typedef