簡體   English   中英

始終為C中的靜態函數提供函數原型是一種好習慣嗎?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM