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 页)