我在查看putchar.c时偶然发现了这些行
我想知道为什么参数ptr
和c
是在参数主体之外声明的? 这是某种"好的老方法"还是有一些实际用途?
int
_putchar_r (ptr, c)
struct _reent *ptr;
int c;
{
return __sputc (c, _stdout_r (ptr));
}
事实上,这是声明函数参数的"旧"方式。
我有点喜欢它,因为它可以不断提醒所有函数的参数都是局部变量,只存在于函数范围内,并且传递给任何函数的任何参数总是值副本。
它是经典C编程书中引入的K&R C风格
它是一个带有标识符列表的函数定义。标识符列表中的每个标识符都在函数的复合语句之前声明。
因此,可以使用参数类型列表或使用带有标识符列表的旧样式来定义函数。