-
庫函數
鎖定
庫函數(Library function)是將函數封裝入庫,供用户使用的一種方式。方法是把一些常用到的函數編完放到一個文件裏,供不同的人進行調用。調用的時候把它所在的文件名用#include<>加到裏面就可以了。一般是放到lib文件裏的。
- 中文名
- 庫函數
- 外文名
- Library function
- 領 域
- 信息科學
- 文 件
- C源程序
庫函數簡介
一般是指編譯器提供的可在c源程序中調用的函數。可分為兩類,一類是c語言標準規定的庫函數,一類是編譯器特定的庫函數。
C語言的語句十分簡單,如果要使用C語言的語句直接計算sin或cos函數,就需要編寫頗為複雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用户的需要編制並提供用户使用的一組程序。C的庫函數極大地方便了用户,同時也補充了C語言本身的不足。事實上,在編寫C語言程序時,應當儘可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。
這裏調用的是靜態庫。
庫函數基本概念
庫函數:存放在函數庫中的函數。庫函數具有明確的功能、入口調用參數和返回值。
由於C語言編譯系統應提供的函數庫尚無國際標準。不同版本的C語言具有不同的庫函數,用户使用時應查閲有關版本的C的庫函數參考手冊。我們以Turbo C為例簡介一下C的庫函數,並附錄中給出了Turbo C的部分常用庫函數。
[1]
庫函數分類
(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)字符串、內存和字符函數。包括對字符串進行各種操作和對字符進行操作的函數。
例如:用於檢查字符的函數:isalnum,isalpha,isdigit,islower,isspace等。用於字符串操作函數:strcat,strchr,strcmp,strcpy,strlen,strstr等。
(3)數學函數。包括各種常用的三角函數、雙曲線函數、指數和對數函數等。
需要的包含文件: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)系統調用依賴於平台,庫函數並不依賴