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 中所定義。