【发布时间】:2014-05-09 19:00:53
【问题描述】:
以下代码行在 Visual Studio 2010 中产生垃圾:
swprintf(buf, L"Value is %s", "abcd");
但是,相同的代码在 Linux 上也可以正常工作。
通过试用,我可以在 Visual Studio 下使用 %S 而不是 %s 使其工作。
swprintf(buf, L"Value is %S", "abcd");
我想知道这是 Visual Studio 2010 中的错误还是我遗漏了什么。问候。
【问题讨论】:
-
这是一个罕见的问题,可以而且应该合法地标记 C++ 和 C。
-
@Deduplicator 一些看似 C 和 C++ 通用的库函数,实际上它们之间存在一些差异。除非 OP 绝对确定两种语言的答案是相同的,并且有一个具体原因说明单个语言标记不足,否则我认为 OP 仅将其标记为 C++ 是正确的。
-
@hvd:我并不是在暗示 OP 不谨慎或错误标记,只是在这种情况下 C 也同样适用。因此,我建议添加 C。如果给您带来不同的印象,我很抱歉。
标签: c++ c visual-studio-2010 visual-c++