2013-07-21 24 views
-2
#‎include‬<stdio.h> 
int main(void) 
{ 
    int a=10; 
    printf("%d, %d, %d\n", a, a++, ++a); 
    return 0; 
} 

這是在32位gcc編譯器 和12 11 11中顯示的16位turbo c編譯器中的12 11 12。 不同的C編譯器有不同的參數傳遞規則嗎?不同的C編譯器有不同的參數傳遞規則嗎?

+7

又一次這個問題......這是不確定的在C標準就是爲什麼,不同的編譯器使用不同的訂單C不給訂單 –

+0

請寫「不同」時,你的意思是「不同」,'diff'是程序員非常特別的東西。理解你的問題花了太長時間。 – Amadan

+1

爲什麼這一個agaiiiiiin .......?閱讀[本](http://stackoverflow.com/questions/17250452/unexpected-behavior-of-printf)和[這一個](http://stackoverflow.com/questions/17473706/understanding-sequence-point- in-c) – haccks

回答

1

請閱讀comp.lang.c FAQ表達式。

問:在我的編譯器,代碼

INT I = 7; printf(「%d \ n」,i ++ * i ++);

打印49.不管評估順序,不應該打印 56?

相關問題