最近,在使用GNU Bison时,我已经看到一些类似的函数定义:static VALUEripper_pos(self) VALUE self;{ //code here}self括号外的类型为何?这是有效的C吗?
3 回答
九州编程
TA贡献1785条经验 获得超4个赞
这些是旧的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;
}
基本上,“新样式”声明是普遍首选的。
千万里不及你
TA贡献1784条经验 获得超9个赞
这是声明函数参数的所谓“旧”变体。在过去,不能只在括号内编写参数类型,而必须在右括号后为每个参数定义参数类型。
换句话说,它相当于 ripper_pos( VALUE self )
慕斯709654
TA贡献1840条经验 获得超5个赞
这是老 c。在ANSI C强制键入参数之前,K&R C使用此约定。
static VALUE // A static function that returns 'VALUE' type.
ripper_pos(self) // Function 'ripper_pos' takes a parameter named 'self'.
VALUE self; // The 'self' parameter is of type 'VALUE'.
- 3 回答
- 0 关注
- 617 浏览
添加回答
举报
0/150
提交
取消