名稱空間
變體
操作

static_assert

來自 cppreference.com
< c‎ | 錯誤
定義於標頭檔案 <assert.h>
#define static_assert _Static_assert
(C11 起)
(C23 中已移除)

這個方便宏擴充套件為關鍵字 _Static_assert

目錄

[編輯] 示例

#include <assert.h>
 
int main(void)
{
    static_assert(2 + 2 == 4, "2+2 isn't 4");   // well-formed
 
    static_assert(sizeof(int) < sizeof(char),   // compile-time error
                  "this program requires that int is less than char");
}

[編輯] 注意

自 C23 起,static_assert 本身就是一個關鍵字,也可能是一個預定義宏,因此 <assert.h> 不再提供它。

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.2/3 診斷 <assert.h> (p: 待定)
  • C17 標準 (ISO/IEC 9899:2018)
  • 7.2/3 診斷 <assert.h> (p: 135)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.2/3 診斷 <assert.h> (p: 186)

[編輯] 另請參閱

C++ 文件 關於 靜態斷言