對於很多剛剛接觸c語言和tc環境的同學,學習面向過程和結構化的思想以及c語言的語法是學習中的重中之重,但是在對此二者有了乙個比較牢固的基礎之後若想繼續提高,一是要學習一些常用的能夠解決實際問題的處理方法和計算機在儲存資料方面的知識,我們稱之為演算法和資料結構,這能使你可以解決問題的數量大幅度增加;二是要學習所使用的語言和環境給我們提供的可以直接利用的資源,也就是庫。
隨著計算機技術的迅猛發展,我們要處理和解決的問題規模越來越大,結構也越來越複雜,這決定了我們在程式設計的時候不可能每個細節都從零寫起,而要運用許多現成的可以保證正確的**來實現比較固定的功能,這種固定的功能實現常常以庫函式的形式體現出來。c語言的庫中提供了許多實現某一特定目的的函式,這能使你程式設計的效率大大提高,並且使程式的邏輯更加清晰。
預備知識
有些同學在學習庫函式的時候感覺特別痛苦,其中部分原因是由於對語言的基本概念掌握不牢所造成的。對於c語言,要想熟練地使用庫函式,必須對函式的呼叫機制,形參實參的傳遞過程和返回值的處理有乙個全面而準確的認識,弄清傳值呼叫和傳位址呼叫的區別的聯絡,充分掌握這些知識才能很快理解別人寫出的函式在介面和實現的功能上存在著怎樣的聯絡。另外,如果你不只滿足於使用庫中的函式而有志於通過剖解它們的**來獲取別人的程式設計經驗,那麼你還需要擁有較強的閱讀程式的能力。 最常用庫函式介紹
即使對於初學者,也有一些函式是在練習程式設計的過程中無可避免地將使用到的,對於這種使用頻繁的函式我們有必要盡快掌握,實際上這些函式通常集中宣告在以下幾個標頭檔案中:、和。
中宣告了c語言中大部分關於輸入輸出操作的函式,我們只需要呼叫這些函式便能對輸入與輸出做出處理,而不需要考慮到硬體的問題。大家從接觸c語言開始,哪怕是最簡單的「hello,world」程式也要在程式開始寫下一行#include ,可見這個標頭檔案中所宣告函式的使用頻率之高。
這個標頭檔案中所宣告關於標準輸入輸出的常用函式列表如下:
函式名 函式原型 具體功能
scanf int scanf(const char*format[,argument]...); 從標準輸入裝置讀入資料,並可根據argument做的設定,把資料依照要求的格式寫到要求的位置
printf int printf(const char*format [,argument]...); 將所有資料格式化並一起輸出到標準輸出裝置
gets char *gets(char *buffer); 從標準輸入資料流裡取得一整行的資料,並存入buffer中。它會直接取得所有輸入的字元,直到欲換行為止
puts int puts(const char *string); 把指定字串輸出給標準輸出裝置
getchar int getchar(void); 由標準輸入裝置讀取乙個字元
putc int putc(int c); 將單個字元輸出到標準輸出裝置
除了關於標準輸入輸出的函式之外,中還宣告了大量與檔案讀寫操作有關的函式,這些函式中的一部分和標準輸入輸出的功能類似,只不過將資料流改變到了檔案上;另一部分是為檔案開啟、關閉以及檔案指標定向等提供的基本操作,同學們可以在學習了和檔案操作相關的內容之後再來複習它們。此外,中的sscanf和sprintf兩個函式可以利用字串進行讀寫操作,在一些特定的場合可以為資料轉換提供很大的方便。
中宣告的庫函式用來處理相關的數學問題,這些數學函式大部分都是作用於浮點數型別的資料,其所支援的功能包括三角函式數值運算、指數對數運算、絕對值以及一些基本的數值處理,現在將這些函式用下表加以總結:
功能範圍 函式名 函式原型 具體功能
三角函式與
反三角函式 sin double sin(double x); 計算x弧度的正弦值
cos double cos(double x); 計算x弧度的余弦值
tan double tan(double x); 計算x弧度的正切值
asin double asin(double x); 計算絕對值不大於1的浮點數的反正弦值
acos double acos(double x); 計算絕對值不大於1的浮點數的反余弦值
atan double atan(double x); 計算浮點數的反正切值
指數對數運算 log double log(double x); 計算正浮點數的自然對數值
log10 double log10(double x); 計算正浮點數的以10為底的對數值
pow double pow(double x,double y); 計算x的y次方
exp double exp(double x); 計算e的x次方
sqrt double sqrt(double x); 計算非負浮點數的平方根
絕對值計算 fabs double fabs(double x); 計算浮點數的絕對值
數值處理 ceil double ceil(double x); 求出大於乙個浮點數的最小整數
floor double floor(double x); 求出小於乙個浮點數的最大整數
modf double modf(double x,int *intptr); 求浮點數的小數部分,整數部分寫入第二個引數指向的位址
fmod double fmod(double x,double y); 求兩浮點數相除後的餘數
熟悉數學庫中的函式是學習程式設計過程中必不可少的一環,因為這些函式如同輸入輸出函式一樣有著較高的使用頻率,並且其中的一部分很難自己寫出原始碼實現。
< stdlib.h>中宣告了許多相當基本的函式,讓c語言的使用者僅僅使用標準函式庫就能實現強大的功能,其中涉及到資料型別轉換、記憶體操作、隨機數處理、排序和程式流程控制等方方面面的內容,在下表中筆者著重介紹資料型別轉換和隨機數處理這兩個初學者比較常用方面的常用函式,關於記憶體操作的函式讀者可以在
中找到比較詳細的說明。
功能範圍 函式名 函式原型 具體功能
資料型別轉換 atof double atof(const char *string); 將字串轉換為浮點型別
atoi int atoi(const char *string); 將字串轉換為整數型別
atol long atol(const char *string); 將字串轉換為長整數型別
itoa char* itoa(int value,char *string,int radix); 將整數型別的數值轉換為字串,radix描述了進製的選擇,範圍在2到36之間
fcvt char *fcvt(double value,int count,int *dec,int *sign); 將浮點數轉換為字串,value為要被轉換的數值,count為小數點後的位數,dec為小數點所在的位置,sign描述正負號
隨機數 srand void srand(unsigned int seed); 設定隨機種子
rand int rand(void); 隨機產生一數值
另外幾個比較常用的標頭檔案所宣告的函式功能
除了、和之外,還有一些標頭檔案中宣告了比較常用的函式,下表總結了一些標頭檔案所宣告函式的功能範圍。
標頭檔案 標頭檔案中所宣告函式的功能描述
在程式執行過程中設定插入點,便於程式設計師進行究錯工作
處理時間,便於程式設計師使用到系統的時間
對字串的各種處理
對字元的相關處理
與在圖形介面作圖有關的處理
結語
mysql vc執行庫 VC 執行庫安裝
vc 執行庫 visual c 可再發行程式包 是執行使用相應版本的 visual c 開發的應用程式時必要的元件。wampserver內建的apache mysql mariadb和php就依賴vc 執行庫,所以我們需要在電腦上安裝好vc 執行庫,否則無法正常使用wampserver。wampse...
執行庫實現
堆的實現 io與檔案操作 字串相關操作 格式化字串 helloworld程式無須用到的功能就不實現,比如異常 盡量簡化設計,盡量符合c 標準庫的規範 對於可以直接在標頭檔案實現的模組盡量在標頭檔案中實現,以免諸多的類 函式的宣告和定義造成 量膨脹,不便於演示 執行庫 要做到可以在windows和li...
C執行庫 二
任何乙個c程式,它的背後都有一套龐大的 來進行支撐,以使得該程式能夠正常執行。這套 至少包括入口函式,及其所依賴的函式所構成的函式集合。當然,它還理應包括各種標準庫函式的實現。這樣的乙個 集合稱之為執行庫 runtime library 而c語言的執行庫,即被稱為c執行庫 crt 如果擁有visua...