如果我們在main函數之前的開頭聲明瞭一個變量而沒有給出EXTERN關鍵字,它將被視爲一個靜態全局變量(只能在該文件中訪問)或者我們能否從其他變量訪問它文件? 例如:c中的全局變量
#include<stdio.h>
int k;
main()
{
}
如果我們在main函數之前的開頭聲明瞭一個變量而沒有給出EXTERN關鍵字,它將被視爲一個靜態全局變量(只能在該文件中訪問)或者我們能否從其他變量訪問它文件? 例如:c中的全局變量
#include<stdio.h>
int k;
main()
{
}
變量k
將在技術上提供給其他文件(模塊),但除非其他文件有一個extern int k
聲明,他們不會知道的變量,編譯時錯誤將指示k
在其他文件中未知。
外部定義和聲明,默認初始化爲零。僅
int k;
外部聲明,定義並初始化一些別的地方
extern int k;
外部定義,初始化和申報
int k = 2;
static int k;
它告訴編譯器的變量k accessable在文件scocpe,無法到達外面。
extern int k;
它告訴鏈接器變量k鏈接到另一個文件中的變量k。
int k;
它是全局範圍,不能在兩個文件中聲明兩次。
因此,deoes它工作作爲一個靜態的全局變量? – user1762571
使其可見的通常方法是在頭文件中聲明'extern int k;'以由任何需要查看它的任何'* .c'文件來''include'd。 (你通常不會在與main()相同的源文件中定義的東西)。 –
@KeithThompson,yes(+1)。 – lurker