功能中标识符列表和参数列表的区别?

时间:2017-02-21 12:49:17

标签: c function declaration definition

对于这个引用:

  

函数声明符中不属于a的标识符列表   该函数的定义应为空。

标识符列表和参数列表之间有什么区别,有人可以为此引用提供示例。

2 个答案:

答案 0 :(得分:6)

“标识符列表”仅用于过时的“K& R样式”功能。今天编写的新代码永远不会使用它。您可以在此处查看更多详细信息:https://stackoverflow.com/a/3092074/4323

这是这样的:

void func(identifier-list)
declaration-list
{
    body
}

当他们说它是空的时,它们意味着即使承认古代代码的可能性,也不允许在没有定义函数的声明中使用它。例如,这是不允许的:

void func(x) int x;

答案 1 :(得分:2)

没有标识符定义的标识符列表没有说明函数参数的类型。因此,当函数声明不是函数定义时,为函数声明指定标识符列表是没有意义的。

因此使用引用引用的这种限制。

这是一个例子

#include <stdio.h>

void f();

int main(void) 
{
    int x = 10;
    f( x );

    return 0;
}

void f( x ) 
int x;
{
    printf( "x = %d\n", x );
}

当使用参数列表时,编译器可以检查函数的调用,该函数将有效参数传递给函数。因此最好总是使用参数列表而不是标识符列表。