C 函数体和头之间声明的变量
在阅读MINIX的源代码时,我遇到了以下问题:C 函数体和头之间声明的变量,c,C,在阅读MINIX的源代码时,我遇到了以下问题: int do_read_write(rw_flag) int rw_flag; /* READING or WRITING */ { 看起来中间的一行是用来声明函数的rw_标志输入的类型,但我以前从未见过这种表示法。它与下面的有什么不同吗 int do_read_write(int rw_flag) { 如果没有,除了扩展代码以便可以对其进行更多注释之外,它还有什么用途吗?这是一种非常古老的C风格的声明,从
int do_read_write(rw_flag)
int rw_flag; /* READING or WRITING */
{
看起来中间的一行是用来声明函数的rw_标志
输入的类型,但我以前从未见过这种表示法。它与下面的有什么不同吗
int do_read_write(int rw_flag) {
如果没有,除了扩展代码以便可以对其进行更多注释之外,它还有什么用途吗?这是一种非常古老的C风格的声明,从第一年(1980年代)开始。是的,意思是一样的
您不应该再使用它了,大多数编译器不再支持它,并且出于某种原因放弃了它。这是一种声明参数的有效方法,称为声明列表(ISO/IEC 9899:TC3,6.9.1,1) 6.9.1功能定义 语法 功能定义: 声明说明符声明器声明listopt复合语句 申报表: 声明 申报表申报 …但它将变得无效(ISO/IEC 9899:TC3,6.11.7) 6.11未来语言方向 [……] 6.11.7功能定义 使用带有单独参数标识符和声明列表的函数定义(不是原型格式参数类型和标识符声明器)是一种过时的特性
AFAIK它是过时的K&R样式。它不是声明的变量,而是指定的参数类型。