“在不是函数定义的结成部分的函数声明符中的标识符表应为空”这句的意思
“在不是函数定义的组成部分的函数声明符中的标识符表应为空”这句的意思?
C89中文版6.5.4.3章节里面的,
------解决方案--------------------
An identifier list in a function declarator that is not part of a function definition shall be empty.
------解决方案--------------------
翻译错了吧;
形参存储类型由调用约定和具体实现决定,而不是存储类型决定。
------解决方案--------------------
意思不就是“函数声明时,除函数名外,其它标识符都应该为空”吗?
------解决方案--------------------
6.5.4.3
第3句,
能在形参声明中。。。。。 register
有没有翻译错误?
------解决方案--------------------
++
意思就是,就当这些标识符不存在。
只有函数名,和数据类型,才是函数声明所需要的。
形参的变量名字,是不必要的。
------解决方案--------------------
函数定义时,形参的名字,才是有意义的。
函数声明中,形参的名字,是不必要的。
shall 在这里,应该是可以的意思吧。
------解决方案--------------------
即使在函数定义中,形参的标识符也不是必须的。
------解决方案--------------------
参阅4楼, 函数声明时,不需要列出形参的标识符,只列出每个形参的数据类型即可
------解决方案--------------------
An identifier list in a function declarator that is not part of a function definition shall be empty.
一个 标识符 列表 在 一个 函数 声明 那个 是 不 部分 的 一个 函数 定义 应该 是 空.
函数声明时(即函数原型中),除函数名外,其它标识符都应该为空。
------解决方案--------------------
++
函数定义中,虽然不是必须的,用到的那个必须有名字。
除非不确定参数列表那种。
------解决方案--------------------
C89中文版6.5.4.3章节里面的,
------解决方案--------------------
An identifier list in a function declarator that is not part of a function definition shall be empty.
------解决方案--------------------
翻译错了吧;
形参存储类型由调用约定和具体实现决定,而不是存储类型决定。
------解决方案--------------------
意思不就是“函数声明时,除函数名外,其它标识符都应该为空”吗?
------解决方案--------------------
6.5.4.3
第3句,
能在形参声明中。。。。。 register
有没有翻译错误?
------解决方案--------------------
意思不就是“函数声明时,除函数名外,其它标识符都应该为空”吗?
++
意思就是,就当这些标识符不存在。
只有函数名,和数据类型,才是函数声明所需要的。
形参的变量名字,是不必要的。
------解决方案--------------------
函数定义时,形参的名字,才是有意义的。
函数声明中,形参的名字,是不必要的。
shall 在这里,应该是可以的意思吧。
------解决方案--------------------
即使在函数定义中,形参的标识符也不是必须的。
------解决方案--------------------
An identifier list in a function declarator that is not part of a function definition shall be empty.
没发现翻译错了。这个是GB上,翻译了英文版C89的。
An identifier list 一个标识符列表
in
a function declarator that is not part of a function definition 不是函数定义部分的那些函数声明
shall be
empty
参阅4楼, 函数声明时,不需要列出形参的标识符,只列出每个形参的数据类型即可
------解决方案--------------------
An identifier list in a function declarator that is not part of a function definition shall be empty.
一个 标识符 列表 在 一个 函数 声明 那个 是 不 部分 的 一个 函数 定义 应该 是 空.
函数声明时(即函数原型中),除函数名外,其它标识符都应该为空。
------解决方案--------------------
即使在函数定义中,形参的标识符也不是必须的。
++
函数定义中,虽然不是必须的,用到的那个必须有名字。
除非不确定参数列表那种。
------解决方案--------------------
/*
C89的函数声明有两种形式
int fun1(int x, int y) // D(形参类型表)
int fun2(x, y) // D(任选的标识符表)
int fun2() // D(任选的标识符表)
如果func2(x, y)不是函数定义
int func2(x, y)
int x, int y;
{
return x + y;
}
的一部分的话;
那么就标识符表应该为空
int func2();
*/
/*
* 这句话描述的是K&R风格的函数声明和定义
*/
/* 函数声明为 */
int func2(); /* 标识符表为空 */
/* 函数定义为 */
int func2(x, y) /* 标识符表不为空 */
int x, int y;
{
return x + y;
}
/*
* C99已经废除了这种写法了
* 现在大家使用的是这种写法
*/
/* 声明 */
int fun1(int x, int y); /* 声明中的参数标识符x, y 可以省略 */
/* 定义 */
int fun1(int x, int y)
{
return x + y;
}