![](/img/trans.png)
[英]C: Is it good practice to put static function prototypes in implementation files?
[英]Is it a good practice to always have function prototypes for static functions in C?
我正在看一些用C語言編寫的嵌入式固件。 我注意到.c文件中使用了靜態函數,但是沒有函數原型。 始終將函數原型放在.c文件頂部附近是一種好習慣嗎? 是否存在不放置函數原型會更好的情況?
始終將函數原型放在.c文件頂部附近是一個好習慣嗎
沒有。 如果使用多個調用同一函數的.c文件,則最好在.h文件中聲明該函數並將其包括在內,而不是在每個調用該函數的新.c文件中重新聲明該函數。
如果僅使用一個文件,而您不確定是否要聲明它-聲明將使您能夠在定義函數之前調用該函數,因此我認為這是一個好習慣
是否存在不放置函數原型會更好的情況?
有時您可以不使用原型進行編譯,但是總的來說,我認為最好不要省略它們,但是我認為我不能說這真的很糟糕
請注意,將ac函數設為靜態會將其隱藏到其他轉換單元...
我看到在.c文件頂部提供靜態函數原型的兩個原因:
第二個參數可能是有爭議的,因為當今有很多發現/讀取源代碼的方法。 所以我認為這不應該是一種做法 。 您僅在需要時才這樣做。
函數原型的主要用途是在頭文件中。 如果您定義相互遞歸的函數,它們也很方便。 除此之外,函數原型只會導致不必要的代碼(聲明)重復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.