C 函数参数的定义方式

来源:百度知道 编辑:UC知道 时间:2024/05/25 22:17:48
C语言中函数参数的一种定义方式如下:
void esum (p1, p2, p3, f)
int *p1, *p2, *p3;
char *f;
{
...
}

以前没碰到过这种定义方式,请问

1. 有什么优点?

2. 需要注意什么?

这是一种旧的定义标准了,新标准为了与旧的兼容做了保留。现在一般都不这样定义,而这样定义:

void esum(int *p1,int *p2,int *p3,char *f){
//……
}

两种没什么区别,新定义方式更简单明了。

没看明白

不过好像你的意思是实现声明的意思
还是对于形参类型在函数名下定义?

如果是前者...那是因为C语言是顺序编译的...这就要求你的函数必须按使用顺序来..如果实现声明,写的顺序就自由了

如果是后者...那是种老版编译器的规则...不是推荐的...除非你为了兼容很古老的程序~~很多书索性就不介绍这种定义方法了,因为没必要!

这是K&R C中的形参声明形式,现在已经不用了!

1.没有什么优点

2.注意不要在编程时使用这样的声明方法