在 math.h 中有超过 200 个 ~语法错误~ 对于 Visual Studio 来说,这没有意义

Over 200 ~SYNTAX ERRORS~ in math.h for visual studio, which doesn't make sense

本文关键字:Studio Visual 对于 来说 有意义 错误 语法 math      更新时间:2023-10-16

使用 Visual Studio Express2013 for Windows Desktop,以及"Win32 Console Application"C++项目

(我正在为一门课程做一个项目。为了开始,我必须导入讲师提供的所有项目文件 - 有大量(所有 .cpp 和 .h 文件),所以我真的无法在这里复制粘贴它们中的任何一个......但无论如何,我认为这不是问题所在)。

当我点击"运行调试器"时,我在math.h中遇到了近200个语法错误,尽管math.h是Visual Studio附带的。

所有错误似乎都非常简单,例如:

"Missing ')' before identifier _X'"
"'_X' : undefined identifier"
"'floor' : definition of dllimport data not allowed"
"syntax error : missing ';' before '+'"

etc... these syntax errors go on into the 200s.

(我会复制粘贴整个错误日志,但是有 262 个错误,而且它们都有文件目录路径,所以你们不可能阅读)

如果math.h是一个来自Visual Studio本身的文件,为什么我在math.h中有这么多语法错误?

(我已经试图弄清楚这个问题了几个星期,在编译之前我实际上无法开始处理该项目)

问题可能出在标头本身 - C++为旧的 C 库提供了自己的等效库。它们采用以下格式:

c[library name]

其中 [库名称] 替换为旧的 C 库减 .h 扩展名。

要将 C 库中的 math.h 包含在 C++ 程序中,您可以执行以下操作:

#include <cmath>

您还可以尝试其他人所说的一些事情。

注意:我不确定旧的 C 标头是否是问题的根源,但由于C++确实引入了一些不兼容性,这很可能是问题所在。

cpp 文件中提到#include <math.h>之前,您可能已经包含了一些头文件。该头文件可能在类/函数声明结束时错过了;,导致math.h文件中出现错误。例如

#include "test.h"

#include <math.h>

如果test.h末尾缺少类/数据类型/函数声明;则会导致错误math.h