变量"使用"是不是类型名称?

时间:2016-02-29 21:54:25

标签: c visual-studio-2015

我目前正在尝试在C中创建一个应用程序作为学校的作业,我的教授要求我使用以下内容使其与他的编译器兼容:

#pragma warning(disable: 4996)
#include<string>
#include<stdlib.h>
#include<time.h>

(我正在使用visual studio)

由于某种原因,#include <string>会引发一系列运行时错误,主要包括问题标题中的错误。它出现在一堆其他依赖项中,包括cmath,cstudio,cstdlib,cstring等。所以最重要的是,有人能告诉我如何修复它吗?谢谢!

4 个答案:

答案 0 :(得分:1)

您包含C ++头文件。使用#include <string.h>

答案 1 :(得分:1)

#include <string>是C ++头文件,因此与C不兼容。

正如其他人所建议的那样,您可以将其更改为#include <string.h>,以便您拥有有效的C标头,但是如果您的教授断言您使用了特定的标头集,那么您需要将源文件更改为.ccp文件而不是.c文件。

答案 2 :(得分:0)

您在C代码中包含了一个C ++库。没有任何扩展名的头文件是C ++头文件。拥有&#34; .h&#34;扩展名是C头文件。 C ++也接受C头文件仍然没有扩展名。他们给出了相同的名字&#34; c&#34;前缀,没有&#34; .h&#34;扩展

例如

<string> 

是一个C ++标题

<string.h> 

是C标头

<cstring> 

是C头但是在C ++代码中。

答案 3 :(得分:0)

在Visual Studio中,如果扩展名为'.c',则会出现此错误。VSStudio将假定文件的类型为c,而不是c ++,并使用c编译器而不是c ++。

在项目设置的高级选项下,您可以选择“编译为C ++”,然后将文件全部编译为C ++。如果向下滚动,则会在命令行中找到添加到其中的标志“ -x”。

如果您使用的是gcc编译器,则与在编译器命令“ -x c ++”中添加以下内容相同

检查gcc参考以获取该标志。