This question already has answers here:
Closed last year.
Alternative (K&R) C syntax for function declaration versus prototypes
(5个答案)
我在浏览make程序的源代码时发现了以下函数声明:
我们如何解读这份声明?
例2
见Alternative (K&R) C syntax for function declaration versus prototypes
(5个答案)
我在浏览make程序的源代码时发现了以下函数声明:
struct dep *
read_all_makefiles (makefiles)
char **makefiles;
{ ... followed by function code ...
我们如何解读这份声明?
最佳答案
这是在ANSI/ISO标准C之前,函数参数声明的旧K&R样式。这种样式现在已经过时了,但仍然可以在一些非常旧的代码中找到。虽然它仍然是标准的,但建议不要再这样写了。
要解密,只需将参数声明列表一个接一个地移回函数原型,并匹配标识符。
引用草案N1570,§6.9.1/13:
例1
extern int max(int a, int b)
{
return a > b ? a : b;
}
例2
extern int max(a, b)
int a, b;
{
return a > b ? a : b;
}
见Alternative (K&R) C syntax for function declaration versus prototypes
关于c - 签名后带有变量的C函数声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48554755/
10-16 19:16