static_assert
来自 cppreference.cn
定义于头文件 <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> (页码:待定)
- C17 标准 (ISO/IEC 9899:2018)
- 7.2/3 诊断 <assert.h> (页码:135)
- C11 标准 (ISO/IEC 9899:2011)
- 7.2/3 诊断 <assert.h> (页码:186)
[编辑] 参见
C++ 文档 关于 静态断言
|