[英]What does getint (int *) mean?
getint (int *);
我不太确定getint (int *)
是什么意思? 有人可以解释吗?
这是一个声明函数getint()
的函数原型。 该函数将指向int
指针作为参数。
在对函数进行原型设计时,无需指定参数名称。
原型缺少返回类型,对于C,该返回类型默认为int
。 但是,省略返回类型会违反最新的C标准,因此这样做的代码可能被视为无效。
相当于
getint(int *);
虽然会
int getint(int * pi);
TL; DR getint (int *);
是一种非常糟糕的编程风格的函数前向声明。 没有任何显式的返回类型,它将默认为int
。
推荐的写方法是显式指定返回类型,例如
如果是int
,例如
int getint(int *); //yes, omitting the identifier name is correct, see note below
要么,
int getint(int * outVar); //we can have the name, if we want.
如果void
,像
void getint(int *);
要么,
void getint(int * outVar);
或您想要的任何返回类型。
注意:
仅供参考,从C11
第6.7.6.3节“ 函数声明符”(强调我的)开始
如果在声明
'T D1'
中D1
具有以下形式:D( parameter-type-list )
...
参数类型列表指定函数参数的类型,并可以声明该函数的参数的标识符 。
因此,标识符名称是可选的。
该代码无效C。如果可以编译,请考虑升级到不超过15年的编译器。
历史课:
在较旧的C标准版本中,允许您在编写函数声明时省略返回类型,在这种情况下, getint(int *);
与int getint(int *);
含义相同int getint(int *);
,因为如果您未指定返回类型,则默认为int
。 但是,即使在1990年,这样做也是一个坏习惯。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.