解决方法
在c11中,static_assert是一个assert.h宏,它扩展为_Static_assert.
你可以使用:
#include <assert.h> #if defined(static_assert) // static_assert macro is defined #endif
请注意,某些编译器(例如,IAR)也具有static_assert关键字扩展名,即使它们不支持C11也是如此.
如评论中所述,您还可以检查c11:
#if (__STDC_VERSION >= 201112L) // it is c11,static_assert is defined when assert.h is included #endif