我注意到下面的代碼有些奇怪。Printf()在Linux中的C語言中的「while(1)」循環之前未執行
int main()
{
printf("Test"); // Section 1 do something here....
while(1)
{
;
}
}
第1節,應先執行,然後該程序應該陷入while循環。 但結果是「測試」沒有得到打印,但它陷入了while循環。我想知道爲什麼第1部分的代碼沒有被執行?
我跑在Ubuntu 14.04 LTS的stdout
流緩衝的代碼(使用默認的gcc編譯器編譯)
'printf'緩衝。在結尾添加一個'\ n'以清除緩衝的輸出。或者在循環之前調用'fflush(stdout);'。如果它仍然沒有打印,我們將重新討論GCC是否產生不正確的代碼:) – StoryTeller
這麼多副本......選擇哪一個? – paddy
@paddy:選擇第一個。 – Olaf