这个C语法有什么用- 使用'K&R'样式函数声明?
int func (p, p2)
void* p;
int p2;
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我能够在Visual Studios 2010beta中写这个
// yes, the arguments are flipped
void f()
{
void* v = 0;
func(5, v);
}
Run Code Online (Sandbox Code Playgroud)
我不明白.这种语法有什么意义?我可以写:
int func (p, p2)
int p2;
{
return 0;
}
// and write
int func (p, p2)
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它似乎唯一指定的是它使用了多少参数和返回类型.我猜没有类型的参数有点酷,但为什么允许它和int paranName函数声明后?有点奇怪.
这还是标准的C吗?
c function kernighan-and-ritchie function-declaration function-definition
可能重复:
定义中的函数标题之后的C变量声明
这个C语法有用吗?
我试图理解一些C代码并遇到了这个函数的头部和第一个支撑之间声明变量的地方.
知道这些变量是什么吗?
他们是本地的还是全球的?
作者打算在这做什么?
void someFunction (m_ptr, n_ptr, params, err)
integer *m_ptr; /* pointer to number of points to fit */
integer *n_ptr; /* pointer to number of parameters */
doublereal *params; /* vector of parameters */
doublereal *err; /* vector of error from data */
{
//some variables declared here
int i;
...
...
//body of the function here
}
Run Code Online (Sandbox Code Playgroud) 在阅读一些FreeBSD源代码时(参见:radix.h第158-173行),我在定义中找到了"函数标题"之后的变量声明.
这在ISO C(C99)中有效吗?什么时候应该在生产代码中完成而不是仅仅在"函数标题"中声明变量?为什么要在这里完成?
我指的是标题字符串的函数,如下所示: int someFunction(int i, int b) {