2017-04-19 5 views
0

文字定数は以下のようにC11で定義されている:
   文字定数構文

      'C-チャー配列'
      L」C-チャー配列'
     ' c-char-sequence '
      U 'C-チャー配列'
    C-チャー配列:
      C-チャー
      C-チャー配列C-チャー
    C-CHAR。
     ソース文字セットのうち、一重引用符、バックスラッシュ、または改行文字以外の任意のメンバー
     エスケープシーケンス
C11で文字定数を再帰的に定義するのはなぜですか?

単一引用符の内側に、1つ以上のC-文字があるので、それが「ABC」のように、再帰的に定義されています。
しかし私が知っているように、文字定数には 'a'のような1つのc-charしか含まれていませんか?

+0

私の知る限り、文字はUTF-8です。 ASCIIができる文字以外の文字をサポートすることができます。こちらをご覧くださいhttp://stackoverflow.com/questions/10229156/how-many-characters-can-utf-8-encode –

答えて

0

私が知っているように、文字定数には 'a'のように1つのc-charしか含まれていませんか?

いいえ、'abcd'も文字定数です。その値は技術的には実装上定義されていますが、見た目のどこでもビッグエンディアンの順番でcharの値から形成されています(この場合、0x61626364)

cppreferenceのC側はさまざまなcharacter constants

関連する問題