C 中的預處理器定義和關鍵字重定義
在C 預處理器指令領域,關於重定義的標準合規性引發了激烈的爭論使用#define 的關鍵字。合規的預處理器可以允許這種做法嗎?
預處理器和關鍵字
根據C 標準,§17.4.3.1.1/2 明確禁止在其中重新定義關鍵字包含標準庫頭的翻譯單元。此限制確保了標準庫元件的完整性。
C 0x 和關鍵字重新定義
最初,人們認為C 0x(現已過時的C 11 中間體) )將加強這項禁令,徹底禁止關鍵字重新定義(§17.6.3.3.1)。然而,後來澄清,C 0x 中的規則保持不變。感知到的修訂源自於無意中誤導了某些人的文本重新排列。
標準合規性和關鍵字重新定義
鑑於當前標準,重新定義關鍵字的 C 程序不能認為符合標準。透過違反關鍵字重新定義的限制,此類程式破壞了語言及其內建語義的完整性。
以上是使用 #define 標準重新定義 C 關鍵字是否符合標準?的詳細內容。更多資訊請關注PHP中文網其他相關文章!