getint (int *);
我不确定getint (int *)
是什么意思?有人可以解释一下吗?
答案 0 :(得分:3)
这是一个声明函数getint()
的函数原型。该函数将int
作为参数指针。
在对函数进行原型设计时,不必指定参数的名称。
原型缺少返回类型,对于C,则默认为int
。但是,忽略返回类型违反了最近的C标准,因此这样做的代码可能被视为无效。
相当于
getint(int *);
虽然会是
int getint(int * pi);
答案 1 :(得分:2)
TL; DR getint (int *);
是函数的前向声明,采用非常糟糕的编程风格。如果没有任何显式返回类型,它将默认为int
。
建议的写入方式是明确指定返回类型,如
if 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.
if void
,例如
void getint(int *);
或,
void getint(int * outVar);
或您想要的任何返回类型。
注:
仅供进一步参考,来自C11
,章节§6.7.6.3,函数声明符,(强调我的)
如果在声明
'T D1'
中,D1
的格式为D( parameter-type-list )
...
参数类型列表指定函数参数的类型,并可以声明标识符。
因此,标识符名称是可选的。
答案 2 :(得分:1)
代码无效C.如果编译,请考虑升级到不超过15年的编译器。
历史课:
在较旧的,过时的C标准版本中,您在编写函数声明时可以省略返回类型,在这种情况下,getint(int *);
与int getint(int *);
的含义相同,因为如果您指定了没有返回类型,默认为int
。然而,即使在1990年这样做也是不好的做法。