今天编译代码是出现报错,报错部分如下:
1>e:\visual studio 2012\vc\include\xtgmath.h(112): warning C4193: #pragma warning(pop) : 没有匹配的“#pragma warning(push)”
1>e:\visual studio 2012\vc\include\xtgmath.h(113): warning C4161: #pragma pack(pop...) : 出栈的比入栈的多
1>e:\visual studio 2012\vc\include\cmath(28): error C2061: 语法错误: 标识符“acosf”
1>e:\visual studio 2012\vc\include\cmath(28): error C2059: 语法错误:“;”
1>e:\visual studio 2012\vc\include\cmath(28): error C2061: 语法错误: 标识符“asinf”
1>e:\visual studio 2012\vc\include\cmath(29): error C2061: 语法错误: 标识符“atanf”
1>e:\visual studio 2012\vc\include\cmath(29): error C2059: 语法错误:“;”
1>e:\visual studio 2012\vc\include\cmath(29): error C2061: 语法错误: 标识符“atan2f”
1>e:\visual studio 2012\vc\include\cmath(29): error C2061: 语法错误: 标识符“ceilf”
……
……
C++代码:
#include <iostream>
using namespace std;
class Time
{
public:
void set_time()
{
cin >> hour;
cin >> minute;
cin >> sec;
}
void show_time()
{
cout << hour << ":" << minute << ":" << sec <<endl;
}
private:
int hour;
int minute;
int sec;
};
int main()
{
Time t;
t.set_time();
t.show_time();
return 0;
}
仔细检查后没发现有语法错误,在网上寻找答案,最终在CSDN论坛中发现解决方法,帖子地址为:
http://bbs.csdn.net/topics/380232154
帖子回复中指出出现这种错误有三种原因,原因如下:
(1).使用了std命名空间(usning namespace std;),而没有包含使用的头文件。如用了数学函数而没有包含头文件cmath(C++)或者math.h(C)
(2).包含头文件是将头文件名写错。如#include <math.h> 写成#include <math>。
(3).将源文件名写成了C的格式。如main.cpp保存时保存为main.c(我犯的就是这个错误)。