旧式的C风格的函数定义又叫K&R式函数定义
void KRfunc(a, b)
/* definition */
int a; char b; { ... }
新式的C风格的写法为:
void ANSIfunc(int a, char b) { ... }
K&R式函数声明,没有类型表示默认是int
有时称为 K&R 的声明的旧样式声明都有中的声明是在括号内列出的任何参数。 例如:
void KRfunc(); /* declaration */
void KRfunc(a, b) /* definition */
int a;
char b;
{ }
C++ 需要 ANSI 样式函数原型 (或声明),哪个列表每个参数的类型由该函数接受,如下所示:
void ANSIfunc(int a, char b);
需要此类型的声明,,因为在 C++ 中每个函数有一个签名。 签名由该函数和接受该参数的类型的名称组成。 编译器无法构造从 K&R 声明的函数的签名。