static_assert
来自cppreference.com
在标头 <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>
不再提供它。
引用
- C17 标准(ISO/IEC 9899:2018):
- 7.2/3 Diagnostics <assert.h> (第 135 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.2/3 Diagnostics <assert.h> (第 186 页)