为什么这种声明函数的方式在C++中已经过时了?

Jav*_*ram 3 c c++ syntax function

这种类型的函数声明是有效的,C但为什么不在C++

int sum(i,j)int i,j;
{
  return i+j;
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*itb 11

这是因为旧式函数定义没有声明原型.也就是说,调用者不知道函数期望的参数类型.

在C++中,这太过类型安全性错过了.特别是,FDIS说

更改:在C++中,函数定义的语法排除了"旧式"C函数.在C中,允许使用"旧式"语法,但不推荐使用"过时".

理由:原型对于打字安全至关重要.

对原始特征的影响:删除语义明确定义的特征.

转换难度:句法转换.

如何广泛使用:在旧程序中常见,但已知已过时.