相关疑难解决方法(0)

函数声明与原型的替代(K&R)C语法

这个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

69
推荐指数
3
解决办法
1万
查看次数

奇怪的C语法是什么?

可能重复:
定义中的函数标题之后的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)

c syntax

5
推荐指数
1
解决办法
1242
查看次数

定义中函数标题后的C变量声明

在阅读一些FreeBSD源代码时(参见:radix.h第158-173行),我在定义中找到了"函数标题"之后的变量声明.

这在ISO C(C99)中有效吗?什么时候应该在生产代码中完成而不是仅仅在"函数标题"中声明变量?为什么要在这里完成?

我指的是标题字符串的函数,如下所示: int someFunction(int i, int b) {

c variables freebsd c99 c89

2
推荐指数
2
解决办法
1839
查看次数