首頁 > 後端開發 > C++ > C 預處理器可以重新定義關鍵字並且仍然符合標準嗎?

C 預處理器可以重新定義關鍵字並且仍然符合標準嗎?

Barbara Streisand
發布: 2024-12-11 11:40:12
原創
431 人瀏覽過

Can C   Preprocessors Redefine Keywords and Still Be Standards Compliant?

重新定義C 預處理中的關鍵字:標準合規性

使用#define 重新定義語言關鍵字引發了開發者社區的爭論。本文深入探討了有關此實踐的標準。

與重新定義的關鍵字的標準一致性

根據C 標準(§17.4.3.1.1/2),如果翻譯單元包含標準庫頭,則符合標準的C 預處理器無法重新定義關鍵字。對於沒有標準頭的翻譯單元,此限制被取消。

在 C 0x 中,上述段落的第二句似乎完全禁止重新定義關鍵字,導致混亂。不過,Ken Bloom 澄清說,C 0x 中的規則並沒有改變。文本只是以可能引起誤解的方式重新排列。

不合格的後果

如果 C 程式重新定義語言關鍵字,它本質上並不變得不合格。但是,不保證它可以跨不同編譯器或平台移植。此外,如果此類程式嘗試與期望原始關鍵字定義的標準庫標頭進行交互,則可能會遇到意外行為或錯誤。

以上是C 預處理器可以重新定義關鍵字並且仍然符合標準嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板