C 與 C 的微妙偏離
雖然人們普遍認為 C 是 C 的子集,但仔細檢查會發現細微的差異。以下是C 中編譯的程式碼在C 中遇到障礙的一些實例:
沒有暫定定義
在C 中,重新定義變數是非法的,與C 不同,在C 中,暫定定義是非法的。定義允許後續重新定義。
數組類型不相容性
C 區分有大小和無大小的數組類型,使得 int[] 和 int[N] 不相容。然而,C 允許它們互換使用。
K&R 函數語法
C 不允許K&R 風格的函數定義,其中函數參數清單直接跟在回傳類型後面.
巢狀結構作用域
C 定義巢狀結構具有類別作用域,而 C則遵循本地作用域的早期行為。
預設int
在C 中,在沒有明確型別說明符的情況下使用「auto」是無效的,這與在C 中預設為int .
其他C99不相容性
C99 引入了更多差異:
數組維度說明符
C不允許在函數參數的數組維度中使用聲明說明符,這在C 中允許。
可變長度數組
C 忽略對可變長度數組的支持,而 C 通過聲明具有非常大小的數組來允許它們。
靈活陣列成員
C 在結構中缺少靈活的陣列成員,這是 C 中存在的功能。
限制限定符
C 引入了限制限定符協助別名分析,但在 C 中不支援。
以上是C 在編譯和語法方面與 C 有何細微差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!