我可以在 C 和 C++ 中定义文字数字,借助后缀L
、U
、D
等,如下所示:
34656345L
94375804U
3.141593F
...
因此,在它们出现的表达式中,编译器知道它们的类型。定义 1 字节文字数字(如char
)的类似方法吗?例如,我知道我可以使用(char)28
,但可能有一个我没有找到的后缀。
我看过这个页面 http://www.cplusplus.com/doc/tutorial/constants/但没有提到字符常量。
字符文本没有后缀。
在C++中,您可以使用'
封闭的文字,如'x9f'
(在 C 中它们是int
s),但无法以这种方式指定十进制字符代码。
在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
类型。请参阅此处的讨论。