1

在我之前的问题中,我询问了编译c存在命名问题的地方,因为在一些重命名之后,C++保留字比C我现在意识到的要多,这是楔子的薄弱环节。

示例:Test.c:

#include <math.h>

int test()
{
    int n = pow(10, 10);
    return n;
}

因为 C++ 中的 math.h 为 定义了重载pow,而这些都不是int, int它不知道选择哪个。

出现的其他问题包括:

  1. Int 不是默认类型,例如static x = 1;失败
  2. 参数类型可以在签名之后但在正文之前定义c,但不能c++

等等,在这个项目上进行转换基本上不是一件简单的工作。我不想改变它的另一个原因是它仍然必须在另一个编译器中C编译。

所以我不是要解决这些问题,它们非常明显,只是在这个庞大的项目上耗时。我正在寻找一种c在视觉工作室中几乎“按原样”编译的方法,或者一个明确的“不,这是不可能的”。

我试过的:

  1. 通过 Project->Properties->C/C++->Advanced->Compile as C Code 强制 c 编译
  2. 通过 Project->Properties->C/C++->Language->Disable Language Extensions 关闭扩展
4

1 回答 1

0

pow(10.0, 10.0) 或 pow((double)10, (double)10) 怎么样?它会给你的代码带来麻烦吗?

于 2013-04-02T11:18:25.997 回答