为什么C11递归定义字符常数



字符常数在C11中定义为:
  语法
&essp; ensp;角色构恒定:
&essp; ensp; 'c-char-sequence'
&essp; ensp; ensp; ensp; l'c-char-sequence'
&essp; ensp; ensp; ensp; un'c-char-sequence'
&essp; ensp; ensp; ensp; un'c-char-sequence'
&essp; ensp; c-char-sequence:
&essp; ensp; ensp; ensp; char
&essp; ensp; ensp; ensp; ensp; ensp;  ensp; c-char:
  ensp; ensp; essp;除了单引号',backslash 或new-Line字符
以外的源字符的任何成员
&essp; ensp; ensp; ensp; ensep;

它是递归定义的,因此在单价中,有一个或多个C-CHAR,例如" ABC"。
但是,众所周知,字符常数仅包含一个c-char,例如" a",不是吗?

我知道,字符常数仅包含一个c-char,例如" a",不是吗?

不,'abcd'也是一个字符常数。它的价值在技术上是定义的,但是我所看到的任何地方都是由大型秩序(在这种情况下,0x61626364(

以炭的价值形成的。

cppReference的C端对各种字符常数进行了讨论

最新更新