在C(不是C ++)中,特别是在GCC上,实现编译时静态断言的最佳方法是什么?

最佳答案

C11标准添加了_Static_assert关键字。

这是implemented since gcc-4.6

_Static_assert (0, "assert1"); /* { dg-error "static assertion failed: \"assert1\"" } */


第一个时隙必须是整数常量表达式。第二个插槽是常量字符串文字,它可以很长(_Static_assert(0, L"assertion of doom!"))。

我应该注意,这在clang的最新版本中也已实现。

关于c - C中的静态断言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49627071/

10-11 01:04