static_assert
From cppreference.net
|
定义于头文件
<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"); // 格式正确 static_assert(sizeof(int) < sizeof(char), // 编译时错误 "this program requires that int is less than char"); }
注释
自 C23 起, static_assert 本身已成为关键字,也可能作为预定义宏存在,因此 <assert.h> 不再提供该功能。
参考文献
- C23 标准 (ISO/IEC 9899:2024):
-
- 7.2/3 诊断 <assert.h> (页码: 待定)
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.2/3 诊断 <assert.h> (页: 135)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.2/3 诊断 <assert.h> (页: 186)
参见
|
C++ 文档
关于
Static Assertion
|