所以,我正在做一个项目,我打算在没有必须使用 Visual Studio 2015 或 2017 的 math.h 或 cmath 库帮助的情况下实现我自己版本的三角函数、平方根、舍入和指数. 我习惯于使用 GCC,当没有明确包含 math.h 或 cmath 时,它们各自的函数没有链接。在我新安装的空的、仅包含 iostream 的 Visual Studio 项目中,我似乎获得了使用 sin、cos 和 tangent 函数的能力,以及重复声明函数的错误。此后,我在两台计算机上新建了一个虚拟项目(一台是运行全新安装的 VS2017 的工作计算机,另一台是运行 VS2015 的个人计算机)并剥离了所有链接库,
#include <iostream>
int main()
{
float n = sin(3.1415f);
return 0;
};
在我的整个项目中。我不确定如何在没有链接到外部文件的情况下重建项目并且没有任何其他包含,我能够访问 sin() 函数。此外,如果我将文件更改为
#include <iostream>
float sin(float n)
{
return 1.0f;
};
int main()
{
float n = sin(3.1415f);
return 0;
};
它向我展示了C2382。无论我的外部依赖项中是否包含其他文件,都会发生这种情况。在保持对 printf()、std::cout 和 system("PAUSE") 等基本功能的访问的同时,我将如何删除对 math.h 的包含?为了这个项目的目的,就像我在 GCC 环境中一样?
- 可悲的是,尽管我一直在命名空间内进行开发以根据标准库检查我的实现,但我并不打算将标准数学函数与最终结果联系起来。这在 GCC 中很容易实现,但正如我所提到的,这个项目必须在 VS 中。