c 和 c++ 函数声明和定义:指定数据类型

pre*_*aju 1 c c++ function visual-c++

我正在将 c 代码移植到 c++。下面的 C 程序编译成功。但是在 C++ 中,它会引发错误。我知道它非常基本的东西。我以这种方式声明了 100 多个函数。是否有任何标志我们可以添加以成功编译而不是修改所有函数。

  • 操作系统:Windows
  • IDE:Visual Studio
int sum(m,n)
int m,n;
{
    return m+n;
}
Run Code Online (Sandbox Code Playgroud)

Jab*_*cky 5

这是非常古老的 C。在过去的 30 年里,没有人应该使用它。你不能用 C++ 编译器编译它。至少在我知道的编译器(clang、gcc、microsoft 编译器)中,没有任何编译器标志。

您应该转换所有具有以下形式的函数

int sum(m,n)
int m,n;
{
    return m+n;
}
Run Code Online (Sandbox Code Playgroud)

int 到表单

int sum(int m, int n)
{
    return m+n;
}
Run Code Online (Sandbox Code Playgroud)

如果你有 100 个函数,它应该是可行的。但是可能还有许多其他问题,因为 C++ 不是 C 的精确超集。

这篇 SO 文章可能对您很有趣:函数声明:K&R vs ANSI