庫函數
可在c源程序中調用的函數
庫函數(Library function)是把函數放到庫里,供別人使用的一種方式。.方法是把一些常用到的函數編完放到一個文件里,供不同的人進行調用。調用的時候把它所在的文件名用#include加到裡面就可以了。一般是放到lib文件里的。庫函數:存放在函數庫中的函數。庫函數具有明確的功能、入口調用參數和返回值。
一般是指編譯器提供的可在c源程序中調用的函數。可分為兩類,一類是c語言標準規定的庫函數,一類是編譯器特定的庫函數。
由於版權原因,庫函數的源代碼一般是不可見的,但在頭文件中你可以看到它對外的介面
庫函數簡介。
C語言的語句十分簡單,如果要使用C語言的語句直接計算sin或cos函數,就需要編寫頗為複雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要編製並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。事實上,在編寫C語言程序時,應當儘可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。
這裡調用的是靜態庫。
函數庫:函數庫是由系統建立的具有一定功能的函數的集合。庫中存放函數的名稱和對應的目標代碼,以及連接過程中所需的重定位信息。用戶也可以根據自己的需要建立自己的用戶函數庫。
庫函數:存放在函數庫中的函數。庫函數具有明確的功能、入口調用參數和返回值。
連接程序:將編譯程序生成的目標文件連接在一起生成一個可執行文件。
頭文件:有時也稱為包含文件。C語言庫函數與用戶程序之間進行信息通信時要使用的數據和變數,在使用某一庫函數時,都要在程序中嵌入(用#include)該函數對應的頭文件。
由於C語言編譯系統應提供的函數庫尚無國際標準。不同版本的C語言具有不同的庫函數,用戶使用時應查閱有關版本的C的庫函數參考手冊。我們以Turbo C為例簡介一下C的庫函數,並附錄中給出了Turbo C的部分常用庫函數。
(1)I/O 函數。包括各種控制台I/O、緩衝型文件I/O和UNIX式非緩衝型文件I/O操作。
需要的包含文件:stdio.h
例如: getchar,putchar,printf,scanf,fopen,fclose,fgetc,fgets,fprintf,fsacnf,fputc,fputs,fseek,fread,fwrite等。
(2)字元串、內存和字元函數。包括對字元串進行各種操作和對字元進行操作的函數。
需要的包含文件:string.h、mem.h、ctype.h或string.h
例如:用於檢查字元的函數:isalnum,isalpha,isdigit,islower,isspace等。用於字元串操作函數:strcat,strchr,strcmp,strcpy,strlen,strstr等。
需要的包含文件:math.h
例如:sin,cos,exp(e的x次方),log,sqrt(開平方),pow(x的y次方)等。
(4)時間、日期和與系統有關的函數。對時間、日期的操作和設置計算機系統狀態等。
需要的包含文件:time.h
例如:time返回系統的時間;asctime返回以字元串形式表示的日期和時間。
(5)動態存儲分配。包括"申請分配"和"釋放"內存空間的函數。
需要的包含文件:alloc.h或stdlib.h
例如:calloc,free,malloc,realloc等。
(6)目錄管理。包括磁碟目錄建立、查詢、改變等操作的函數。
(7)過程式控制制。包括最基本的過程式控制制函數。
(8)字元屏幕和圖形功能。包括各種繪製點、線、圓、方和填色等的函數。
(9)其它函數。
函數的功能及所能完成的操作。
參數的數目和順序,以及每個參數的意義及類型。
返回值的意義及類型。
需要使用的包含文件。
這是要正確使用庫函數的必要條件。
(1)庫函數是語言或應用程序的一部分,而系統調用是內核提供給應用程序的介面,屬於系統的一部分。
(2)庫函數在用戶地址空間執行,系統調用是在內核地址空間執行,庫函數運行時間屬於用戶時間,系統調用屬於系統時間,庫函數開銷較小,系統調用開銷較大。
(3)庫函數是有緩衝的,系統調用是無緩衝的。
(4)系統調用依賴於平台,庫函數並不依賴。
1、C語言與C語言庫函數的關係就類似於漢字與經典著作的關係。C語言是一種計算機編程語言,C語言函數庫是由C語言編寫出來的文獻。方便後來者們更加簡單快捷地使用C語言。
2、C語言是一種程序設計的入門語言。由於C語言的語句中沒有提供直接計算sin或cos函數的語句,會造成編寫程序困難;但是函數庫提供了sin和cos函數,可以拿來直接調用。顯示一段文字,我們在C語言中找不到顯示語句,只能使用庫函數printf。C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要,編製並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。在編寫C語言程序時,使用庫函數,既可以提高程序的運行效率,又可以提高編程的質量。
2張
庫函數