簡體   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