1. ホーム
  2. c

[解決済み] C言語での静的アサート

2022-12-08 23:48:44

質問

C (C++ではない) でコンパイル時の静的アサート、特に GCC に重点を置いて達成する最良の方法は何でしょうか?

どのように解決するのですか?

C11規格では _Static_assert キーワードが追加されました。

これは は gcc-4.6 以降で実装されています。 :

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

最初のスロットは積分定数式である必要があります。 2番目のスロットは定数文字列リテラルで、長いもの ( _Static_assert(0, L"assertion of doom!") ).

これは最近のclangのバージョンでも実装されていることに注意してください。