c++ - C编译器??)替换

标签 c++ string visual-studio compiler-construction string-literals

我们在使用 Visual Studio 2005 编译器时遇到了一个奇怪的问题。
在编译时,它替换了这个字符串常量

"... ,0x??)"

用这个:

"... ,0x]"

我们几乎没有通过尝试执行以下替换来学习:

??(   ->   [
??)   ->   ]
??<   ->   {
??>   ->   }

所以我想这应该是一个特性,而不是一个错误。
Visual Studio 2010 不这样做。

很遗憾,您无法使用 Google 搜索 ??(
所以问题是:

我们可以通过编译器开关来控制这种行为吗?

顺便说一句:这是什么原因?

最佳答案

那些是 C 有向字母和三字母:http://en.wikipedia.org/wiki/Digraphs_and_trigraphs

是的,您可以在 visual studio 中禁用它们:http://msdn.microsoft.com/en-us/library/ee462497.aspx

关于c++ - C编译器??)替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041739/

相关文章:

c++ - 是否需要删除渲染上下文并销毁设备上下文?

c++ - 是否可以使用 Visual Studio 构建 WinDBG 扩展?

visual-studio - 缺少 Visual Studio 2017 和 2019 C++/CLI

visual-studio - VB/C#: Resizing two controls equally

c++ - 由于 typedef 导致的 C2371 错误

C++ cout cin 字符串操作

c++ - GCC 的模板模板参数推导失败(适用于 MSVC)

c - fgets() 不保留 '\n' 作为数组大小的输入

python - 需要有关字符串格式的帮助

javascript - 如何在 JavaScript 中将字符串转换为数组?