儘管 C 和 C 之間有許多相似之處,但還是存在細微的差異。這就提出了一個問題:在兩種語言中有效的程式碼在使用各自的標準編譯器編譯時是否仍會產生不同的結果?
公平比較的前提條件
為了確保有意義比較,讓我們建立某些條件:
行為差異
考慮以下程式碼片段:
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
在C 中,此程式碼將不會導致任何輸出,因為創建並銷毀了臨時f 物件。然而,在 C90 中,它將列印“hello”,因為可以在沒有事先聲明的情況下呼叫函數。
這種差異是由於 C 和 C 中 f() 的不同解釋所引起的。在 C 中,f() 被視為函數調用,而在 C 中,它被視為結構體的聲明。
以上是C 和 C 中的有效程式碼在編譯時會產生不同的輸出嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!