C語言裡面預處理自定義庫函式和系統自帶的庫函式有什麼區別嗎

2021-06-08 01:48:00 字數 4027 閱讀 3463

1樓:匿名使用者

沒有本質區別。

舉例[mylib.h]

void fun1(int a,int b);

int fun2();

[mylib.c]

#include "mylib.h"

void fun1(int a,int b)int fun2()

c語言中自定義函式與系統函式的區別

2樓:匿名使用者

系統函式是包含在系統標頭檔案中的函式,它作為一個外部函式可以被所以包含它標頭檔案的檔案中使用。(static除外)。庫檔案中的函式多數是與系統無關的,可移植的。

自定義函式 包含在自己建立的檔案中,在使用時包含該檔案。

1 位置上:系統在系統預設的位置,自定義在本工程的資料夾下 。比如#include "" #include <>的區別。

2 自定義函式可以只為自己的使用考慮,所以在實現的過程中不用可以放寬條件。

3 實現的靜態自定義函式只能在實現它的檔案中使用。

4 自定義函式的函式在main函式之前必須被宣告。

3樓:匿名使用者

自定義,顧名思義就是根據程式設計師的實際需要,自己定義的函式,函式有自己定義的引數,功能和返回值,自定義函式的目的是更好更方便的幫程式設計師更快的完成所需要的程式設計。

系統函式就是系統自帶的函式,它是通用的,就是所有程式設計師都能使用的函式,它有規定的介面,引數形式,功能和返回值,是編譯軟體實現定義好的函式,供所有程式設計師呼叫。

特點:系統函式是通用的,所有程式設計師都知道,都能用,使編譯平臺有普適性,但是不能滿足各種程式設計師特定的變成需求。

自定義函式是自我定義的,只有每個程式設計師自己知道,完成自己想要完成的特定意義的函式,它一般是對系統函式的整合程式設計。比如從螢幕上獲取一個字母,並判斷它是大寫還是小寫,如果大寫,就列印「大寫」,是小寫就列印「小寫」,我們需要先用getchar()獲取螢幕上的字母,再進行判斷,再進行輸出,如果以後我們很多程式都需要用到這三個步驟,那麼我們可以寫一個函式把他們三個步驟整合到一起,有自己的引數和返回值,那麼我們就利用了系統函式構造成了我們自定義的函式。

希望對你有幫助,歡迎再次提問

4樓:匿名使用者

自定義函式是需要我們自己的編譯的,定義一個函式,這個函式的功能是根據自己或使用者的需要所設計的。

而系統函式是程式本身設計好的。系統自帶的, 如我們經常用的個頭插入getchar() getch();之類的都是系統函式;

5樓:匿名使用者

某種程度上來說,巨集函式和自定義函式是有區別的,但作為一個函式的本身來說,沒有實質性的區別。

在c語言中系統允許使用者重新定義標準庫函式嗎?

6樓:善之桃

使用者需要呼叫標準庫函式,呼叫前不用重新定義:

一般來說,在檔案頭加個預處理命令把庫函式包含進來就行了,例如在c語言中就是用include。

在 c語言程式設計裡,c 標準函式庫(c standard library)是所有符合標準的標頭檔案(head file)的集合,以及常用的函式庫實現程式,例如i/o 輸入輸出和字串控制。不像 cobol、fortran 和 pl/i等程式語言,在 c 語言的工作任務裡不會包含嵌入的關鍵字,所以幾乎所有的 c 語言程式都是由標準函式庫的函式來建立的。

c語言中庫函式與非庫函式有何區別?

7樓:匿名使用者

庫函式為ansi c推薦,一般在安裝c編譯系統時已安裝,通過嵌入相應的標頭檔案呼叫。

非庫函式為第三方或使用者自定義函式,沒有大全。

初學c語言,函式庫和庫函式有什麼區別,都是什麼意思?

8樓:哈士奇去上學

c語言本身只是一個規則:即你寫 int a = 1; 就是定義了一個整形值a,初始化為1。

你寫printf()就是呼叫輸出函式。我說這些 的意思是,c語言本身很簡單,它只是一個規則,書寫這種語言的時候需要符合它的語法規則。但是 為了方便c開發者,c編譯器廠商按照標準c編寫了大量的函式,比如printf() , puts() malloc() 這些都是寫好了的函式,他們都有專們的功能,如printf是把字元寫入到標準輸出流,你可以直接使用,而不需要你自己去寫。

他們每一個都叫庫函式,而他們形成的集合就叫函式庫。

庫函式 ---->錘子 , 扳手,螺絲刀.......

函式庫 ---->工具箱

自定義函式 標準庫函式 windows函式區別

9樓:春哥讜仲殃

自定義函式就是你自己寫的

標準庫函式就是c語言自帶的庫函式

windows函式? 你是指系統提供的api吧

10樓:匿名使用者

自定義函式:自己寫的

標準庫函式:每個c編譯軟體都會帶的,是牛人寫的

windows函式:在windows下才能用上,ms家的

c語言main函式與其他函式之間的關係包括庫函式和自定義函式?

11樓:摯愛魚子醬嵌苣

main函式 是入口,先進入main函式,main函式內可以呼叫其他的函式; 庫函式 是 比如 #inlnclude 裡面有很多函式 scanf,printf都在裡面

12樓:專屬aaa丶

其實它和所有函式是一樣的,唯一的區別就是,當你執行程式,由c/c++執行庫去呼叫它,也就是說,是作業系統呼叫的,你也可以呼叫它,但是會引起無線遞迴的情況。在c中,所有函式的具有相同的性質,同時具有不同的功能而已,

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

13樓:匿名使用者

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

#ifndef stdlib_h

#define stdlib_h

...#endif

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

就可以了。

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

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

14樓:風若遠去何人留

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

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

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

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

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

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

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

15樓:匿名使用者

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

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

16樓:匿名使用者

#include "myhead.h"

來包含。

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

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

/* myhead.h */

#ifndef _myhead_h_

#define _myhead_h_

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

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

c語言自定義函式返回陣列的問題,C語言自定義函式返回一個陣列的問題

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

jquery自定義函式問題,和js自定義函式的區別

自定義函式就是你自己寫一個函式,然後呼叫它就可以了function a id 在jquery裡面怎麼寫自定義函式 你可以寫一個函式自呼叫方法,function 在這裡面寫方法,就自己呼叫了,想要把握呼叫的時機,可以直接用你的那種方法,在你想呼叫的地方這樣寫就ok了,getnowtime 關鍵是你的自...

求c語言自定義函式並求數的絕對值

include float getabs float in return in int main int myabs int x c語言中有沒有求絕對值的函式啊?謝謝 有。c語言求絕對值的函式為abs x 與fbs x abs x 包含於stdlib.h,且兩者均包含於math標頭檔案之下。1 ab...