そこで、C99 標準の n869 ドラフトをざっと調べてみると、次のセクションに出くわしました。
6.10.7 Null ディレクティブのセマンティクス
フォームの前処理ディレクティブ
# new-line
効果はありません。
だから、私はそれをテストするためにこのプログラムを書きました:
#
#include <stdio.h>
#
int main(void)
{
puts("Hello, world!");
return 0;
}
案の定、gcc
警告などをずっと上げていたとしても、このコードには問題がありませんでした。初期化子で許可されている余分なコンマ、列挙型定義など、明らかではない他の構造が言語にあることに気付きましたが、それには目的があります (たとえば、コードジェネレーターの記述を簡素化します)。
ただし、これがどのように役立つかわかりません。誰もそれを持っているための合理的なユースケース/理論的根拠を考えることができますか?