2011-12-08 20 views
12

私のコンパイラ(gccは)私にこの警告を与えている可能にするために-trigraphsを使用しています。私はそれが何を意味するのか理解するのに役立ちます:トリグラフは?? /無視、

警告:トリグラフは?? /無視、

+0

'?? /'はバックスラッシュと等価ですので、 "\" –

+1

に置き換えることができます。メインフレーム3270端末などでCコードを編集するなどしない限り、 「??」の出現を書くパラノイアのために "?\?" (いくつかの文字は、同様に、{} [] \、多くのメインフレーム文字セット、並びに他のシステムのためのいくつかの非英語キーボードには存在しない。)Cストライクの – BRFennPocock

+1

ほこり角が再び... –

答えて

16

を有効にするには、-trigraphsを使用しますが、「偶然」のどこかにソースコード(コンパイラの中trigraph書かれています警告は線を特定する)。トリグラフは、現代のシステムに遊びに来ていない問題を解決するために発明されたので、あなたが実際にトライグラフ??/は文字\と交換する必要はありません。

したがって、この警告は無視されるはずです(コマンドラインに-Wallの後に-Wno-trigraphsを追加してシャットダウンするようコンパイラに指示することができます; docsを参照)。しかし、私たちが確信できるようにあなたのソースコードを示すことは良いことです。

4

コンパイラフラグを追加する代わりに、\の各疑問符(例:\?\?-)をエスケープできます。これは私の場合に役立ちました。

+0

コンパイラフラグは場合について想定されます三角形を気付かずに書いたところでは、それは一つです。それでコンパイラはそれについてあなたを気にしません。あなたはそれが意図しない文字表記で書いている時点で知っていた場合、あなたは、あなたが示唆したように、それを脱出し、コンパイラフラグを忘れることができます。 –

関連する問題