在 C 和 C 中均有效的程式碼在每種語言中編譯時是否會表現不同?
C 和 C 有許多相似之處,但某些程式碼在這些語言中編譯時,即使程式碼在語法上都有效,構造也可能會產生不同的結果。
函數呼叫與物件宣告
其中一個場景涉及函數來電。在C90中,無需事先聲明即可呼叫函數。然而,在 C 中,當不宣告呼叫 f() 時,會建立 f 類型的物件。
示例代碼:
考慮以下代碼:
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
行為差異:
版本注意事項:
此行為差異是 C90 特有的。在 C 標準的更高版本(例如 C99)中,無需聲明即可呼叫函數不再有效。因此,程式碼在 C 和 C 中的行為都是相同的。
以上是儘管程式碼有效,函數呼叫在 C 和 C 中的行為是否會有所不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!