私はいくつかのレガシーコードから次のコードを見ました:
size_t a = 1 ???- 2 :0;
記号は何ですか???-
C++の意味ですか?どのように理解すればよいですか?
ありがとうございました!
それは実際には:
size_t a = 1 ? ~2 :0;
??-
は trigraph for ~
三重音字は古い時代のものです...私たちの何人かが生まれる前ですら。
昔は、常にサポートされているとは限らないキャラクターがいました。知らないプログラマーは、そのような文字を入力しようとして、キーボードに存在しないことを発見するだけです。
画像ソース: http://www.myoldmac.net/cgi-data/forum/phpBB2/viewtopic.php?t=305
そのため、トリグラフが追加され、プログラマーがこれらの文字が存在しなかったときに(エンコードまたはキーボードから)これらの文字の機能にアクセスできるようになりました。
今日、それらは時代遅れであり、古い標準を回避するよりも読者を混乱させるのにより効果的です。
つまり、そのコードは本当に古いか、作者がぎくしゃくしていたかのどちらかです。
??-
はチルダの三重音字です~
キャラクター;この行は次と同等です。
size_t a = 1 ? ~2 :0;
??-
は、~
文字の3文字表記です。他のいくつかのトリグラフは次のとおりです。
??= for #
??/ for \
??' for ^
??! for |
現在、三重音字の使用は非常にまれです。