typedef和define的做用域

typedef函數

若是放在全部函數以外,它的做用域就是從它定義開始直到文件尾;spa

若是放在某個函數內,定義域就是從定義開始直到該函數結尾;code

#definexml

無論是在某個函數內,仍是在全部函數以外,做用域都是從定義開始直到整個文件結尾。blog

如:作用域

typedef …//此處開始到文件結尾
#define//此處開始到文件結尾
int negate(int num)
{
…
       typedef …//此處開始到該函數結束。注意,該函數內,此定義前,也不能用
       #define//此處開始到文件結尾
…
}
typedef …//此處開始到文件結尾
#define//此處開始到文件結尾
void show()
{
       typedef …//此處開始到該函數結束。
       #define//此處開始到文件結尾
}

總結:class

(1)       無論是typedef仍是define,都不能在定義以前使用;擴展

(2)       typedef受函數範圍影響,而define不受;程序

(3)      無論是typedef仍是define,其做用域都不會擴展到別的文件,即便是同一個程序的不一樣文件,也不能互相使用。總結

相關文章
相關標籤/搜索