getint(int *)是什么意思?

时间:2015-06-26 06:23:52

标签: c function

getint (int *);   

我不确定getint (int *)是什么意思?有人可以解释一下吗?

3 个答案:

答案 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年这样做也是不好的做法。