不可能在 C++ 中声明字符串类型

Posted

技术标签:

【中文标题】不可能在 C++ 中声明字符串类型【英文标题】:Impossible declare string type in C++ 【发布时间】:2015-10-08 12:07:58 【问题描述】:

我有以下错误:

任何线索我错过了什么?

【问题讨论】:

edit通过minimal reproducible example或SSCCE (Short, Self Contained, Correct Example)提出您的问题 “在查找预编译头使用时跳过” 在这里很重要。如果您的文件中有#include "stdafx.h",则将跳过之前的所有内容。 @NathanOliver 我无法提供完整的项目以便对其进行检查,而且对于了解 Visual C++ 的人来说,问题本身很简单。 尝试在项目设置中删除预编译的头文件(当然,除非你需要它),然后再试一次。 @Dimi 但可以发布导致错误的实际代码的 sn-p,而不是来自一个项目的工作代码和另一个项目的错误。您的第二个代码中是否包含 #include "stdafx.h" 而您发布的代码中没有? 【参考方案1】:

提示在警告中:#include <string> 被忽略,因为它显然位于预编译头文件的包含之后。确保首先包含预编译的头文件。

背景:如果启用了相应的项目设置,Visual C++ 编译器将在预处理步骤中将#include "stdafx.h"(这是文件的默认名称,可以更改)行替换为一些专有的blob 包含 stdafx.h 内容的预处理形式,编译器可以比实际文本内容更快地处理。为此,使用预编译头文件的上下文必须与创建它的上下文相同。Visual C++ 编译器通过简单地废弃包含在预编译头文件之前的所有内容来强制执行此操作。

【讨论】:

谢谢!你的答案是正确的。我只需要了解更多关于预编译头文件的信息。您是否介意补充一下关于预编译标头的答案以及为什么我们必须将它们放在首位。

以上是关于不可能在 C++ 中声明字符串类型的主要内容,如果未能解决你的问题,请参考以下文章

在 Typescript 中,如何声明一个返回字符串类型数组的函数?

为啥允许将字符串文字分配给 C++ 中 char * 类型的指针 [重复]

声明 C++ 中的类型太多

C++入门:第十个程序

php数据类型转换

C++ 枚举类型声明可以放在 int main 的前面吗?