CMAKE_C_KNOWN_FEATURES¶
於版本 3.1 新增。
此 CMake 版本已知的 C 語言特性列表。
此全域屬性中列出的特性可能為 C 編譯器所知且可用。如果該特性適用於 C 編譯器,它將會被列在 CMAKE_C_COMPILE_FEATURES
變數中。
這裡列出的特性可以與 target_compile_features()
命令一起使用。有關編譯特性以及支援的編譯器列表,請參閱 cmake-compile-features(7)
手冊。
此 CMake 版本已知的特性如下所列。
指示 C 標準支援的高階元特性¶
於版本 3.8 新增。
c_std_90
編譯器模式至少為 C90。
c_std_99
編譯器模式至少為 C99。
c_std_11
編譯器模式至少為 C11。
c_std_17
於版本 3.21 新增。
編譯器模式至少為 C17。
c_std_23
於版本 3.21 新增。
編譯器模式至少為 C23。
注意
如果編譯器的預設標準級別至少與請求的特性相同,CMake 可能會省略 -std=
標誌。 如果編譯器的預設擴充模式與 <LANG>_EXTENSIONS
目標屬性不符,或如果設定了 <LANG>_STANDARD
目標屬性,則仍可能會添加該標誌。
低階個別編譯特性¶
c_function_prototypes
函數原型,如
ISO/IEC 9899:1990
中所定義。c_restrict
restrict
關鍵字,如ISO/IEC 9899:1999
中所定義。c_static_assert
靜態斷言,如
ISO/IEC 9899:2011
中所定義。c_variadic_macros
可變參數巨集,如
ISO/IEC 9899:1999
中所定義。