c語言 c語言靜態(tài)變量的作用域是生命期初始化是在?
c語言靜態(tài)變量的作用域是生命期初始化是在?static int gu32uutest=0//此變量的函數(shù)是整個測試。C void testfun(void),因為這個靜態(tài)變量是在函數(shù)外部定義的。}Vo
c語言靜態(tài)變量的作用域是生命期初始化是在?
static int gu32uutest=0//此變量的函數(shù)是整個測試。C void testfun(void),因為這個靜態(tài)變量是在函數(shù)外部定義的。
}
Void testfun2(Void){testvar=2//在此處訪問testvar將提示undefined,因為此變量是在另一個函數(shù)中定義的局部靜態(tài)變量,僅在定義它的函數(shù)中使用。}如果在另一個C文件中訪問g,比如main。測試也會出錯。但其他功能在測試中。C可以叫它。
C中結(jié)構(gòu)體變量為全局變量或靜態(tài)變量時才能初始化么?
在ANSI制定C標準之前,正如書中所說,結(jié)構(gòu)變量(或數(shù)組)只有在全局或靜態(tài)變量時才可以初始化,局部動態(tài)結(jié)構(gòu)變量(或數(shù)組)不允許初始化。但是1989年ANSI制定的第一個C標準(通常稱為C89)規(guī)定允許初始化局部動態(tài)結(jié)構(gòu)變量(或數(shù)組)。雖然你的書是2004年出版的,但它不符合C89的要求。太可惜了!不允許初始化本地動態(tài)集合類型的對象(如結(jié)構(gòu)變量和數(shù)組),因為它效率太低,而且非常耗時,因為每次輸入函數(shù)時都必須初始化動態(tài)本地變量。ANSI在制定C89標準時,考慮到在使用過程中對動態(tài)局部結(jié)構(gòu)(或數(shù)組)進行初始化的實際需要,規(guī)定允許這種行為。