繁体   English   中英

getint(int *)是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM