如果我有一個全局靜態變量x就像這個代碼C固定變量和初始化
#include <stdio.h>
#include <stdio.h>
static int x;
int main(void)
{
DO SOMETHING WITH x HERE
x++;
}
會有什麼區別,如果我選擇來初始化X的值先說在
static int x = 0;
進入「主」之前有
嗎?
在我沒有給x賦值的第一種情況下,編譯器是否隱式知道x將被設置爲零,因爲它是一個靜態變量?我聽說我們可以用靜態變量來做到這一點。
非常感謝......
感謝您的鏈接。從那裏我讀到「這些問題的唯一解決方案是編寫代碼,以便在運行時完成靜態/全局初始化,就在使用變量之前」。回到我的案例,那麼我可以在x被使用之前在我的「main」中包含「static int x」這一行嗎?這是更好的編程習慣嗎? – yCalleecharan 2010-04-11 13:56:23
@yCalleecharan:如果x只被main使用,那麼你應該在main中聲明它。如果你聲明它是自動的,它將始終在堆棧中。如果你聲明它是靜態的,它不會浪費任何堆棧空間。 – tomlogic 2010-04-11 16:53:32
這是非常有趣的知道。我很想知道C中哪些書討論了這些問題。謝謝。 – yCalleecharan 2010-04-11 19:48:35