c - 为什么以这种方式声明函数参数:void func(x) int x;{}.



我在查看putchar.c时偶然发现了这些行

我想知道为什么参数ptrc是在参数主体之外声明的? 这是某种"好的老方法"还是有一些实际用途?

int
_putchar_r (ptr, c)
struct _reent *ptr;
int c;
{
return __sputc (c, _stdout_r (ptr));
}

事实上,这是声明函数参数的"旧"方式。

我有点喜欢它,因为它可以不断提醒所有函数的参数都是局部变量,只存在于函数范围内,并且传递给任何函数的任何参数总是值副本。

它是经典C编程书中引入的K&R C风格

它是一个带有标识符列表的函数定义。标识符列表中的每个标识符都在函数的复合语句之前声明。

因此,可以使用参数类型列表或使用带有标识符列表的旧样式来定义函数。

最新更新