【发布时间】:2012-07-19 07:25:25
【问题描述】:
出于好奇,我想知道不同的文件如何分配某些符号以将它们的常规 c 字符串文字更改为其他文字。
例如...
在Objective-C中,NSString字面量可以写成@"..."
在 C++ 中(我认为),C++ 字符串字面量写成 S"..."
在 wchar 库中,wchar_t 字面量是 writtel L"..."
谁能告诉我如何做一个字符串,比如 MyClass 字面量为#"..."
谢谢
【问题讨论】:
-
这些都是用 C++ 实现的。据我所知,
S""不存在;L""预定义为表示宽字符文字。但是,C++11 实现了user-defined literals。即便如此,他们也只能走到最后,不以下划线开头的任何内容都是保留的,IIRC。 -
L"" 在哪里定义? PS 也许 S"" 是 c#
-
它不在任何标题中;它在语言本身中,就像
int和所有其他关键字一样。 -
c 编译器是否只是假设 wchar 存在?
-
不太熟悉预处理器技术,但我认为您可以使用与自定义文字有点相似的预处理器来实现一些东西。
标签: c++ objective-c cstring string-literals wchar