c - C中这个奇怪的函数定义语法是什么?

标签 c function definition

<分区>

我最近在玩 GNU Bison 时看到了一些这样的函数定义:

static VALUE
ripper_pos(self)
    VALUE self;
{
    //code here
}

为什么 self 的类型在括号外?这是有效的 C 吗?

最佳答案

那些是旧的 K&R 风格的函数参数声明,分别声明参数的类型:

int func(a, b, c)
   int a;
   int b;
   int c;
{
  return a + b + c;
}

这与更现代的函数参数声明方式相同:

int func(int a, int b, int c)
{
  return a + b + c;
}

“新式”声明基本上是普遍首选。

关于c - C中这个奇怪的函数定义语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23057520/

相关文章:

scheme - 程序什么时候出现 "intertwine definition and use"?

c++ - 为什么只有定义了类才能将数据成员指定为类类型? (来自书 "C++ primer")

c - 使用 C 子字符串程序提取电子邮件 header 会给出错误的输出。为什么?

arrays - MATLAB 可以将函数应用于对象数组吗

javascript - 如何在 JavaScript 函数的单选输入控件中引用选中的值?

javascript - 为什么我的分割字符串仅使用 JavaScript 就输出多次?

c - 如何在 C 中定义函数数组

c - 员工结构

c - 如何使用 CL exe 从 Windows 上的另一个文件夹链接 GLFW?

c - 我在函数中正确实现指针吗?