在嘗試調試某些C代碼時,我發現如果放在無限循環之前,printf()將不會執行。有人知道爲什麼嗎?實際上這不是什麼大不了的事情,但對於調試來說這是一場噩夢。打印語句在無限循環之前不會打印
#include<stdio.h>
int main()
{
int data;
printf("This prints fine.\n");
printf("Enter data: ");
scanf("%d", &data);
printf("This should print but it doesn't.\n");
while(1)
{
//Infinite Loop
}
return 0;
}
試過? 'fflush(stdout)' – MarcDefiant
是的,這是有效的。這裏到底發生了什麼? – amishjack
我更喜歡將調試信息打印到stderr,它通常不會被緩衝。 –