首頁  >  文章  >  後端開發  >  使用 #define 標準重新定義 C 關鍵字是否符合標準?

使用 #define 標準重新定義 C 關鍵字是否符合標準?

Patricia Arquette
Patricia Arquette原創
2024-11-21 04:03:17778瀏覽

Is Redefining C   Keywords with #define Standards Compliant?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn