c - 为什么参数类型声明在括号外?

标签 c function coding-style

有时我看到函数定义如下:

read_dir(dir)
char    *dir;   
{
        DIR * dirp;
        struct dirent *d;

        /* open directory */
        dirp = opendir(dir);
  ......... so  on

这里声明的重要性是什么

char    *dir;

在函数名后立即声明指针然后启动函数体的意图是什么。

最佳答案

这是一种较旧的 C 语法,称为“K&R C”,因为它在 legendary book 的原始版本中就是这样出现的.

以前是这样写的:

foo(a, b)
int a;
int b;
{
}

现在

int foo(int a, int b)
{
}

关于c - 为什么参数类型声明在括号外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607332/

相关文章:

c - termios 库中的标志是如何表示的?

c++ - 在C++中读取日期中的月份部分

Java 编码风格——将字符串数组一次又一次地传递给多个方法

grails - Groovy/Grails 代码清理建议,请!

python - 在这种情况下我应该选择 'asking for permission' 吗?

C 数组,向右移动元素未按预期工作

创建没有文件句柄的 GNU C 文件描述符

您可以在结构初始化中创建一个数组吗?

function - 在我声明它们之后是否可以重新评估这里的字符串?

c - 在 C 中将指针作为函数参数传递