C 函数中标识符列表和参数列表之间的差异?
对于此报价: 函数声明器中的标识符列表,它不是 该函数的定义应为空C 函数中标识符列表和参数列表之间的差异?,c,function,declaration,definition,C,Function,Declaration,Definition,对于此报价: 函数声明器中的标识符列表,它不是 该函数的定义应为空 标识符列表和参数列表之间有什么区别?有人能为这个引用提供一个例子吗?标识符列表仅用于过时的K&R样式函数中。今天编写的新代码永远不会使用它。您可以在此处查看更多详细信息: 是这样的: void func(identifier-list) declaration-list { body } 当他们说它应该是空的时,他们的意思是即使承认古代码的可能性,你也不允许在一个没有定义函数的声明中有这个。例如,这是不允许的: voi
标识符列表和参数列表之间有什么区别?有人能为这个引用提供一个例子吗?标识符列表仅用于过时的K&R样式函数中。今天编写的新代码永远不会使用它。您可以在此处查看更多详细信息: 是这样的:
void func(identifier-list)
declaration-list
{
body
}
当他们说它应该是空的时,他们的意思是即使承认古代码的可能性,你也不允许在一个没有定义函数的声明中有这个。例如,这是不允许的:
void func(x) int x;
标识符列表仅用于过时的K&R样式函数。今天编写的新代码永远不会使用它。您可以在此处查看更多详细信息: 是这样的:
void func(identifier-list)
declaration-list
{
body
}
当他们说它应该是空的时,他们的意思是即使承认古代码的可能性,你也不允许在一个没有定义函数的声明中有这个。例如,这是不允许的:
void func(x) int x;
没有标识符定义的标识符列表没有说明函数参数的类型。因此,当函数声明不同时是函数定义时,为其指定标识符列表是没有意义的 因此,引用引用引用的限制被使用 这里有一个例子
#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 );
}
使用参数列表时,编译器可以检查函数调用是否向函数传递了有效参数。因此,最好总是使用参数列表而不是标识符列表。没有标识符定义的标识符列表对函数参数的类型没有任何说明。因此,当函数声明不同时是函数定义时,为其指定标识符列表是没有意义的 因此,引用引用引用的限制被使用 这里有一个例子
#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 );
}
使用参数列表时,编译器可以检查函数调用是否向函数传递了有效参数。因此,最好总是使用参数列表而不是标识符列表。当您给出标准引号时,指定您使用的文档的哪个部分会很有用。它是6.7.5.3/3我想您可以在这里找到答案。。。这是答案的一半阅读问题。实际上我的文件是C99标准。当你给出标准引号时,指定你使用的文档的哪个部分会很有用。它是6.7.5.3/3我想你可以在这里找到你的答案。。。这是答案的一半阅读问题。实际上我的文件是C99标准。那应该是空的吗?这是相反的开关它们。@Sabrina这很清楚,不是吗?应为空表示括号之间不能有任何内容,因为声明不是定义。所以你不能写void funcx@因此,该报价仅限于旧式。K&R该标准是这样编写的,因为函数声明的语法规则将func视为在括号之间有一个空标识符列表。所以在函数声明中必须允许标识符列表。。。但只有当它们是空的。那应该是空的呢?这是相反的开关它们。@Sabrina这很清楚,不是吗?应为空表示括号之间不能有任何内容,因为声明不是定义。所以你不能写void funcx@因此,该报价仅限于旧式。K&R该标准是这样编写的,因为函数声明的语法规则将func视为在括号之间有一个空标识符列表。所以在函数声明中必须允许标识符列表。。。但前提是它们是空的。