私は最初にclangを使って構築している(レガシー)コードをいくつか持っています。コードのようなものです:clangでトリグラフを無効にするスイッチはありますか?
クランは、次の警告(-Werror
との誤差)を与える:
test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
sprintf(buf, "%s <%s ????>", p1, p2);
^
明らかに??>
はトリグラフとして意図されていないので、私は(完全トリグラフを無効にしたいですソースは意図的にどこでもそれらを使用しません)。
私は-no-trigraphs
を試してみましたが、それは本当にオプションではありません。
clang: warning: argument unused during compilation: '-no-trigraphs'
私は-Wno-trigraphs
と警告トリグラフをオフにすることができますが、私はトリグラフ変換が実際にすべての場所を取るしたくありません。
注:を使用すると意図しない副作用としてトリグラフが有効になりました。
おっと! GCCは、厳密な準拠モードであっても、trigraphsを無視して、 '-trigraphs 'で火をつけない限り、無視してしまいます。 'sed'を壊す時間?または同等のもの。 –
実際、GCCの厳格な準拠モード( '-std = c89'、' -std = c99'など)はトリグラフ変換を有効にします。 – zwol
誰かがWTHが三角形であると不思議に思うなら。 [ここにポニーがあります](http://stackoverflow.com/questions/7825055/what-does-the-c-operator-do)... – Mysticial