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

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

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語言中自定義函式與系統函式的區別

系統函式是包含在系統標頭檔案中的函式,它作為一個外部函式可以被所以包含它標頭檔案的檔案中使用。static除外 庫檔案中的函式多數是與系統無關的,可移植的。自定義函式 包含在自己建立的檔案中,在使用時包含該檔案。1 位置上 系統在系統預設的位置,自定義在本工程的資料夾下 比如 include inc...

自定義常量定義應該在哪,C語言自定義函式中定義常量 變數的問題

define和const 1.define是巨集定義,程式在預處理階段將用define定義的內容進行了替換。因此程式執行時,常量表中並沒有用define定義的常量,系統不為它分配記憶體。const定義的常量,在程式執行時在常量表中,系統為它分配記憶體。2.define定義的常量,預處理時只是直接進行...

c語言請編寫函式fun自定義函式其功能是

如下 include int fun int a,int b int c 10 b 10 a 10 1000 b 10 100 a 10 return c int main int a int b printf 請輸入第乙個兩位數a scanf d a printf 請輸入第二個兩位數b scanf...