在函数体和函数头之间声明的变量



在阅读MINIX的源代码时,我遇到了以下内容:

int do_read_write(rw_flag)
int rw_flag;                    /* READING or WRITING */
{

看起来中间一行是用来声明函数的rw_flag输入的类型,但我以前从未见过这种符号。这和下面的有什么不同吗?

int do_read_write(int rw_flag) {

如果没有,除了扩展代码以便可以进行更多注释之外,它还有什么用途吗?

这是一种非常古老的C风格的声明,从最初的几年(80年代?)是的,意思是一样的。

你不应该再使用它了,它不再被大多数编译器支持,并且由于某种原因而被抛弃。

这是一种有效的方式来声明称为声明列表的参数(ISO/IEC 9899:TC3, 6.9.1, 1)…

6.9.1函数定义

语法

函数定义:

声明说明符声明符声明列表opt 复合语句

生命:

声明

生命声明

,但它将成为无效的(ISO/IEC 9899:TC3, 6.11.7)

6.11未来的语言发展方向

[…]6.11.7函数定义

使用带有单独的参数标识符和声明列表的函数定义(而不是原型格式的参数类型和标识符声明符)是一个过时的特性。

最新更新