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