【发布时间】:2021-12-08 17:13:31
【问题描述】:
当我声明一个特定的字符串时,我在 ARM 8.50 的 IAR EW 中发生了一些奇怪的常量/文字生成:
const char g_string[]="?????-??";
当我在调试器中查看它时,它实际上是在内存中生成以下内容:
???~??
如果我像这样分解字符串:
const char g_string[]="?????""-??";
我得到了预期/期望的输出:
?????-??
我是否违反了某些已知标准?还是这是一些 IAR 特定的错误?
FWIW,使用 MSVC 和 Xtensa/Clang 生成的文字不需要这种怪异来获得预期的八个字符。
编辑:
const char g_string[]=R"foo(?????-??)foo";似乎在内存中生成了合适的字符,所以可能是字符编码问题?
【问题讨论】:
-
这能回答你的问题吗? What does the ??!??! operator do in C?