首頁 > 後端開發 > C++ > 如何確定我的編譯器所實現的 C 標準版本?

如何確定我的編譯器所實現的 C 標準版本?

DDD
發布: 2024-12-13 15:59:11
原創
222 人瀏覽過

How Can I Determine the Implemented C   Standard Version of My Compiler?

確定實作的 C 標準版本

確定編譯器的 C 標準實作對於確保相容性並利用最新語言功能至關重要。已經發布了多個 C 標準,包括 C 98 和 C 03。

辨識標準版本的一種方法是檢查巨集 __cplusplus。

__cplusplus 巨集

根據 Bjarne Stroustrup 的 C 0x FAQ,__cplusplus 巨集將是 C 11 及更高版本,設定為大於 199711L 的值。但是,某些編譯器可能無法正確設定此巨集。

GCC

gcc 歷史上曾將 __cplusplus 設定為 1,無論語言版本為何。此問題已在 gcc 4.7.0 中解決。

MSVC

MSVC 也將 __cplusplus 錯誤地定義為 199711L。若要取得正確的值,請將 /Zc:__cplusplus 新增至編譯器標誌或檢查 MSVC 特定巨集 _MSVC_LANG。

預期__cplusplus 值

  • C pre -C 98:1
  • C 98:199711L
  • C 98:199711L
  • C 98: 199711L
  • 🎜> TR1:無法使用__cplusplus
  • C 11 確定:201103L
  • C 14:201402L
  • C 17: 201703L
  • C 17: 201703L
其他方法

    如果 __cplusplus 不足或不可用,其他方法包括:
  • 編譯器特定的巨集:
  • 檢查編譯器定義的巨集可能會揭示實作的標準版本。
  • Boost.Config:
  • 此函式庫提供了用於檢查特定 C 功能的巨集。
  • 功能評估:
運行利用特定功能的程式碼可以決定它們的可用性,從而確定實現的標準版本。

需要注意的是,並非所有編譯器都完全實現 C 標準的所有功能。為了確保可靠的程式碼執行,需要仔細檢查編譯器相容性和功能支援。

以上是如何確定我的編譯器所實現的 C 標準版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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