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

時間 2021-06-08 01:48:46

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語言中自定義函式的用法,C語言中,自定義函式的用法。

c語言中,每個函式都有返回值型別。可以是void,int,double,等,也可以是struct型別。在返回值是void型別的函式中,return一般在最後一行,後面不加任何值,而且此時return可以省略。如 void printresult int n 並不是return必須放在最後一行。只要達...

C語言中能否在自定義函式中呼叫另自定義函式

風若遠去何人留 可以呼叫。c語言最基本的模組為函式,任意函式都可以呼叫其它任意一個函式,包括函式本身。1 自定義函式呼叫其它自定義函式的例子 include void fun1 int a 自定義函式fun1。void fun2 int m,int n 自定義函式fun2。int main 在這個例...

c語言中帶星號的函式叫什麼,c語言自定義函式加星號是什麼意思

這個就是該函式返回值的型別是個指標型別,並且是指向char型別的指標。函式開頭如果是void則說明該函式返回值是空的,就是沒有返回值 函式開頭如果是int則說明該函式返回值是整形,就是函式執行完會返回一個整型數值 同理,只不過這個函式在前面加了個 號,代表返回值是指標型別 希望我的回答能幫到你,嘿嘿...