C語言中,定義自定義庫函式時該如何寫對應的標頭檔案

2021-06-08 01:47:59 字數 1144 閱讀 5691

1樓:匿名使用者

首先,要明白一點。標準庫的標頭檔案多次include是不會發生重定義的錯誤的。所有的標準庫檔案的內容都是如這般寫的:

#ifndef stdlib_h

#define stdlib_h

...#endif

這保證了它的內容只會被引用一次。所以要include,只寫一句#include

就可以了。

另外,你自己的標頭檔案最好也加上上面所示的那種保衛巨集,以防多次引用你自己的標頭檔案出現重定義。

你說的重複定義,可能是另外一個問題。你說你自己做了一個庫,如果你是用 visual c 建工程生成的 lib 庫檔案,要注意專案屬性裡有一個 」/mt「 "/md" 的選項。請保證選的是後者,否則你的庫檔案中會有一套標準庫的函式的實現,而使用你的庫編譯其他程式的時候,又會再次連線系統庫,如此便會產生重定義。

2樓:風若遠去何人留

沒有強制規定,但一般遵循以下原則:

1 功能類似或相關的一組函式寫在同一個標頭檔案中;

2 標頭檔案命名應簡單,儘量短,但可以通過檔名得知內部函式功能;

3 標頭檔案名由數字、字母、下劃線組成,不要有空白字元或其它符號;

4 為防止標頭檔案重複引用,或巢狀引用,標頭檔案應使用條件編譯包含;

5 標頭檔案中,應遵循先型別定義,後函式宣告的順序;

6 當標頭檔案函式宣告中,用到其它標頭檔案中定義的型別時,在標頭檔案開始處進行引用。

3樓:匿名使用者

跟標準庫的頭沒關係,標準庫的標頭檔案隨便你包含多少次都不會有問題的。

你把報錯的提示給貼上來吧。

4樓:匿名使用者

#include "myhead.h"

來包含。

標頭檔案是不編譯的,因為c語言編譯過程之前有個預編譯過程。在這個過程中用標頭檔案中的內容替換原始檔中「#include」命令,所以在編譯器看來,沒有標頭檔案,只有原始檔。預編譯過程還包括條件編譯。

標頭檔案為了防止被重複包含,通常的格式是:

/* myhead.h */

#ifndef _myhead_h_

#define _myhead_h_

(這裡是標頭檔案的內容)

#endif /* _myhead_h_ */希望對你有幫助!

C語言自定義函式int length(char s ,函式返回字串s的長度

include int length char s int main while 1 return 0 include int length char s int main 效果包你滿意,親 include int length char s int main void while y ch y c...

在c語言中自定義函式的寫法是怎樣的

看你的函式功能是幹什麼,函式開頭用不用int看的是你函式最後要返回什麼值,返回的型別是什麼就用什麼,格式如下 函式返回型別 沒有返回就void,返回整型就int,字元就char等等 函式名 函式引數。例如定義一個加法函式,最後返回整型就 int addfunction int a,int b 自定義...

c語言自定義的函式如何返回陣列,c語言自定義的函式如何返回一個陣列

方法1 利用全域性變數 分析 全域性變數作為c語言的一個知識點,雖然我們都瞭解它的特點,但在實際教學過程中應用得並不是很多。由於全域性變數的作用域是從定義變數開始直到程式結束,而對於編寫有多個返回值的c語言函式,我們可以考慮把要返回的多個值定義成全域性變數。當函式被呼叫時,全域性變數被更改,我們再把...