如何在 C 和 C++ 中定义字符常数?

  • 本文关键字:定义 字符 常数 C++ c++
  • 更新时间 :
  • 英文 :


我可以在 C 和 C++ 中定义文字数字,借助后缀LUD等,如下所示:

34656345L
94375804U
3.141593F
...

因此,在它们出现的表达式中,编译器知道它们的类型。定义 1 字节文字数字(如char)的类似方法吗?例如,我知道我可以使用(char)28,但可能有一个我没有找到的后缀。

我看过这个页面 http://www.cplusplus.com/doc/tutorial/constants/但没有提到字符常量。

字符文本没有后缀。

在C++中,您可以使用'封闭的文字,如'x9f'(在 C 中它们是ints),但无法以这种方式指定十进制字符代码。

在C++中,char{28}做你想做的事。char(unsigned char)文本没有后缀。

正如@JesperJuhl提醒我们的那样,如果您愿意,您可以为 char 文字创建自己的后缀,如下所示:

constexpr char operator "" _c(int i) { return char{i}; }

然后你可以写123_c,其中的类型是char.但是 - 我不推荐它,它可能主要会让人们感到困惑。


PS:您可以使用字符文字,例如'a''b'(如果您的编译器使用 ASCII 兼容字符集,例如 UTF-8 或拉丁语 1,则它们的值分别为 97 和 98)。它们将具有char类型,而不是int类型。请参阅此处的讨论。

最新更新