2012-03-12 9 views

答えて

5

これは、おそらく整数の定数に接尾辞Lが使用されているためです。これは接頭辞として既存の接尾辞を再利用する場合のようです。もう1つの答えは、これが委員会設計のものであるということです。聞かないでください。 3番目の答えは、どのような手紙やその他の仕組みを選択したのでしょうか?Lの慣習に対してそれを正当化できますか?賛否両論を主張する

の再利用は、staticautoなどのキーワードを新しい意味で再利用することよりも悪いです。 :)

ところで、これはANSI C(1989年のバックから)の理由に触れられています。彼らはLが選ばれた理由を説明しません。

Lの接頭辞は、ワイド文字列リテラルを区別します。長い文字列リテラルの処理の開始時に、通常の文字またはワイド文字を処理するかどうかをトランスレータが知ることができるように、接頭辞(接尾辞とは対照的に)表記法が採用されました。 (§2.2.1.2を参照)。

セクション2.2.1.2には追加の手掛かりはありません。

+4

私は文字「W」があまりにも明白な選択だったと思います。 –

+2

少なくともC++ 11は、Unicode文字列のために賢明な 'U'を選択しました。 – dan04

+0

@ dan04:Unicodeのための 'U'の使用はC++ 11では新しくなく、単一のUnicode文字に対して' \ U'をすでに持っていました。 – MSalters

5

MSDNは、入力した文字列が

+0

実際にはあまり意味をなさないでしょう...どのように_ "abc" _も文字列リテラルです。 'wchar_t'ではなく' char'だけです – pezcode

+0

MSDNベースの標準C++に関する答えは4つの票を得ていますか?それはうんざりしている、笑。 – Kaz

関連する問題