Keilc51常用庫函數(shù)匯總參考_第1頁
Keilc51常用庫函數(shù)匯總參考_第2頁
Keilc51常用庫函數(shù)匯總參考_第3頁
Keilc51常用庫函數(shù)匯總參考_第4頁
Keilc51常用庫函數(shù)匯總參考_第5頁
免費預覽已結(jié)束,剩余12頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Keilc51函數(shù)參考、數(shù)學函數(shù)<math.h>(1)cabs原型:charcabs(charval);功能:cabs函數(shù)取val的絕對值。參數(shù):一字節(jié)數(shù)val。返回:cabs返回val的絕對值。(2)abs原型:Intabs(intval);功能:求絕對值參數(shù):val整型數(shù)返回:val的絕對值(3)labs原型:longlabs(longval);功能:labs函數(shù)確定長整數(shù)val的絕對值。返回:val的絕對值。(4)fabs原型:floatfabs(floatval);功能:fabs函數(shù)確定浮點數(shù)val的絕對值。參數(shù):返回:fabs返回val的絕對值。(5)sqrt原型:flo

2、atsprt(floatx);功能:sqrt函數(shù)計算x的平方根。返回:sqrt函數(shù)返回x的正平方根。(6)exp原型:floatexp(floatx);功能:exp函數(shù)計算自然對數(shù)中e的x次哥。e2.71828182845953581496,是無限循環(huán)小數(shù)。返回:ex的值。(7)log原型:floatlog(floatval);功能:log函數(shù)計算浮點數(shù)val的自然對數(shù)。自然對數(shù)基數(shù)為e。返回:val的浮點自然對數(shù)。(8)log10原型:floatlog10(floatval);功能:logl0函數(shù)計算浮點數(shù)val的常用對數(shù)。常用對數(shù)為基數(shù)10。返回:val的浮點常用對數(shù)。(9)sin原型:f

3、loatsln(floatx);功能:sin函數(shù)計算浮點數(shù)x的正弦值。參數(shù):x必須在-6553565535之間,或產(chǎn)生一個NaN錯誤。返回:sin函數(shù)返回x的正弦。(10)cos原型:floatcos(floatx);功能:COS函數(shù)計算浮點數(shù)X的余弦。X的值必須在-6553565535之間,或產(chǎn)生一個NaN錯誤。COS函數(shù)返回X的余弦。(11)tan原型:floattan(floatx);功能:tan函數(shù)計算浮點數(shù)x的正切值。x必須在-6553565535之間,或錯誤值NaN。tan函數(shù)返回x的正切。(12)asinfloatasin(floatx);功能:求反正弦浮點數(shù)x,取值必須在-11

4、之間。X的反正弦,值在-兀/2兀/2之間。(13)acosfloatacos(floatx);功能:求反余弦數(shù)回參返浮點數(shù)x,取值必須在-11之間。x的反余弦,值在0兀之間。(14)atanfloatatan(floatx);功能:求反正切浮點數(shù)x,取值必須在-11之間。X的反正切,值在-兀/2兀/2之間。(15)sinhfloatsinh(floatx);功能:sinh函數(shù)計算浮點數(shù)X的雙曲正弦。參數(shù):x必須在-6553565535之間,或產(chǎn)生一個NaN錯誤。返回:sinh函數(shù)返回x的雙曲正弦。(16)cosh原型:floatcosh(floatx);功能:cosh函數(shù)計算浮點數(shù)X的雙曲余弦

5、。參數(shù):返回:cosh函數(shù)返回X的雙曲余弦。(17)tanh原型:floattanh(floatx);功能:tanh函數(shù)計算浮點數(shù)x的雙曲正切。返回:tanh函數(shù)返回x的雙曲正切。(18)atan2原型:floatatan2(floaty,floatx);功能:計算浮點數(shù)y/x的反正切。參數(shù):浮點數(shù)y,浮點數(shù)x。返回:反正切值,值在-兀兀之間。x和y的符號確定返回值的象限。(19)ceil原型:floatceil(floatval)功能:ceil函數(shù)計算大于或等于val的最小整數(shù)值(收尾取整)。參數(shù):要化為整數(shù)的數(shù)。返回:ceil函數(shù)返回不小于val的最小float整數(shù)值。(20)floor原

6、型:floatfloor(floatval);功能:取整。返回:floor函數(shù)返回不大于val的最大整數(shù)值。(21)fmod原型:floatfmod(floatx,floaty);功能:取模。返回:x/y的浮點余數(shù)。(22)modf原型:floatmodf(floatval,float*ip);功能:modf函數(shù)把浮點數(shù)val分成整數(shù)和小數(shù)部分。返回:modf函數(shù)返回帶符號小數(shù)部分val。整數(shù)部分保存在浮點數(shù)ip中。(23)pow原型:floatpow(floatx,floaty);功能:pow函數(shù)計算x的y次哥。返回:pow函數(shù)返回值xyo如果xw0和y=O,pow返回值1;如果x=0和y&

7、lt;0,pow返回NaN。如果x<O和y不是一個整數(shù),pow返回NaN。<intrins.h>_nop_void_nop_(void);功能:nop插入一個8051NOP空操作指令到程序,用來停頓1個CPU周期。本程序是固有函數(shù),代碼要求內(nèi)嵌而不是調(diào)用。返回:無。(2)_testbit_bit_testbit_(bitb);功能:3$也憶程序在生成的代碼中用JBC指令來測試位b,并清零。參數(shù):本程序只能用在直接尋址位變量,對任何類型的表達式無效。固有函數(shù),代碼要求內(nèi)嵌,而非調(diào)用。返回:_testbit_程序返回值b(3)_cror_unsignedchar_cror_(un

8、signedcharc,unsignedcharb);功能:_5。_程序字符c循環(huán)右移b位。固有函數(shù),代碼要求內(nèi)嵌,而不是調(diào)用。參數(shù):返回:右移的結(jié)果(4)_iror_unsignedint_iror_(unsignedinti,unsignedcharb);功能:iror程序?qū)⒄麛?shù)i循環(huán)右移b位。固有函數(shù),代碼要求內(nèi)嵌而不是被調(diào)用。數(shù)回參返i右移的整數(shù),b右移的次數(shù)。iror程序返回右移后的值。(5)_lror_原型:unsignedlong_lror_(unsignedlongl,unsignedcharb);功能:_lror_程序?qū)㈤L整數(shù)l循環(huán)右移b位。固有函數(shù)代碼,要求內(nèi)嵌而不是被調(diào)用

9、。參數(shù):l要右移白數(shù),b要右移的位數(shù)。返回:返回右移后的值。摘要:#include<intrins_h>。(6)_crol_原型:unsignedchar_crol_(unsignedcharc,unsignedcharb);功能:_crol_程序字符c循環(huán)左移b位。固有函數(shù),代碼要求內(nèi)嵌,而不是調(diào)用。參數(shù):返回:左移的結(jié)果(7)_irol_型能數(shù)回原功參返unsignedint_irol_(unsignedinti,unsignedcharb);_irol_程序?qū)⒄麛?shù)i循環(huán)左移b位。固有函數(shù),代碼要求內(nèi)嵌而不是被調(diào)用。i左移的整數(shù),b左移的次數(shù)。irol程序返回左移后的值。(8)

10、_lrol_原型:unsignedlong_lrol_(unsignedlongl,unsignedcharb);功能:_lrol_程序?qū)㈤L整數(shù)l循環(huán)左移b位。固有函數(shù),代碼要求內(nèi)嵌而不是被調(diào)用。參數(shù):l要左移白勺數(shù),b要左移的位數(shù)。返回:返回左移后的值。(9)_chkfloat_原型:unsignedchar_chkfloat_(floatval);功能:檢查浮點數(shù)的狀態(tài)。參數(shù):浮點型變量。返回:0,標準浮點數(shù);1,浮點數(shù)0;2,正溢出;3,負溢出;4,NaN(不是一個數(shù))錯誤狀O(10)_push_原型:void_push_(unsignedchar_sfr);功能:將特殊功能寄存器_sf

11、r壓入堆棧。(11)_pop_原型:void_pop_(unsignedchar_sfr);功能:將堆棧中的數(shù)據(jù)彈出到特殊功能寄存器_sfr。三、字串轉(zhuǎn)數(shù)字,隨機數(shù),存儲池管理<stdlib.h>(1)atof原型:floatatof(void*string);功能:將浮點數(shù)格式的字符串轉(zhuǎn)換為浮點數(shù)。如果string的第一個字符不能轉(zhuǎn)換成數(shù)字,就停止處理。參數(shù):格式為,+|-數(shù)字.數(shù)字e|E+|-數(shù)字。如,-12.345e+67返回:atof函數(shù)返回string的浮點值。(2)atoi原型:intatoi(void*string);功能:atoi函數(shù)轉(zhuǎn)換string為一個整數(shù)值。s

12、tring是一個字符序列,可以解釋為一個整數(shù)。如果string的第一個字符不能轉(zhuǎn)換成數(shù)字,就停止處理。參數(shù):atoi函數(shù)要求string有這樣的格式:空格+|-數(shù)字,如"123456”。返回:atoi函數(shù)返回string的整數(shù)值。(3)atol原型:longatol(void*string);功能:atol函數(shù)轉(zhuǎn)換string為一個長整數(shù)值。string是一個字符序列,可以解釋為一個長整數(shù)。如果string的第一個字符不能轉(zhuǎn)換成數(shù)字,就停止處理。參數(shù):atol函數(shù)要求string有這樣的格式:空格+|-數(shù)字,如"1234567890”。返回:atol函數(shù)返回string的長

13、整數(shù)值。(4)rand原型:intrand(void);功能:rand函數(shù)產(chǎn)生一個032767之間的虛擬隨機數(shù)。返回:rand函數(shù)返回一個虛擬隨機數(shù)。(5)srand原型:voidsrand(intseed);功能:srand函數(shù)設置rand函數(shù)所用的虛擬隨機數(shù)發(fā)生器的起始值seed,隨機數(shù)發(fā)生器對任何確定值seed產(chǎn)生相同的虛擬隨機數(shù)序列。返回:無。(6)strtod原型:unsignedlongstrtod(constchar*string,char*ptr);功能:strtod函數(shù)將一個浮點數(shù)格式的字符串string轉(zhuǎn)換為一個浮點數(shù)。字符串開頭的空白字符被忽略。參數(shù):要求string有下

14、面的格式:+|-digits.digitse|E+|-digitsdigits可能是一個或多個十進制數(shù)。ptr的值設置指針到string中轉(zhuǎn)換部分的第一個字符。如果ptr是NULL沒有值和ptr關聯(lián)。如果不能轉(zhuǎn)換,則prt就設為string的值,strtod返回0。返回:strtod函數(shù)返回由string生成的浮點數(shù)。(7)strtol原型:longstrtol(constchar*string,char*ptr,unsignedcharbase);功能:strtol函數(shù)將一個數(shù)字字串string轉(zhuǎn)換為一個long值。參數(shù):輸入string是一個字符序列,可以解釋為一個整數(shù)。字符串開頭的空白字

15、符被忽略,符號可選。要求string有下面的格式:whitespace+|-digitsdigits可能是一個或多個十進制數(shù)。如果base是零,數(shù)值應該有一個十進制常數(shù)、八進制常數(shù)或十六進制常數(shù)的格式。數(shù)值的基數(shù)從格式推出。如果base在236之間,數(shù)值必須是一個字母或數(shù)字的非零序列,表示指定基數(shù)的一個整數(shù)。字母az(或AZ)分別表示值1036。只有小于base的字母表示的值是允許的。如果base是16,數(shù)值可能以0x或0X開頭,0x或0x被忽略。prt的值設置指針指向string中轉(zhuǎn)換部分的第一個字符。如果prt是NULL.,沒有值和ptr關聯(lián)。如果不能轉(zhuǎn)換,prt設置為string的值,s

16、trtol返回0。返回:strtol函數(shù)返回string生成的整數(shù)值。如溢出則返回LONG_MIN或LONG_MAX。(8)strtoul原型:unsignedlongstrtoul(constchar*string,char*ptr,unsignedcharbase);功能:strtoul函數(shù)轉(zhuǎn)換string為一個unsignedlong值。參數(shù):與strtol函數(shù)類似。返回:strtoul函數(shù)返回string生成的整數(shù)值。如溢出則返回ULONG_MAX(9)init_mempool原型:voidinti_mempool(voidxdata*p,unsignedintsize);功能:ini

17、t_mempool函數(shù)初始化存儲管理程序,提供存儲池的開始地址和大小。本函數(shù)必須在任何其他的存儲管理函數(shù)(calloc,free,malloc,realloc)被調(diào)用前設置存儲池,只在程序的開頭調(diào)用一次??梢孕薷脑闯绦蛞赃m合硬件環(huán)境。參數(shù):p參數(shù)指向一個xdata的存儲區(qū),用calloc,free,malloc和realloc庫函數(shù)管理。size參數(shù)指定存儲池所用的字節(jié)數(shù)。返回:無。(10)malloc原型:voidxdata*malloc(unsignedintsize);功能:malloc函數(shù)從存儲池分配size字節(jié)的存儲塊。返回:malloc返回一個指向所分配的存儲塊的指針,如果沒有足夠

18、的空間,則返回一個NULL指針。(11)free原型:voidfree(voidxdata*p);功能:free函數(shù)返回一個存儲塊到存儲池。p參數(shù)指向用calloc、malloc或realloc函數(shù)分配的存儲塊。一旦塊返回到存儲就可被再分配。如果p是一個NULL指針,被忽略。本程序的源代碼在KEILC51LIB目錄中,可以修改源程序,根據(jù)硬件來定制本程序。參數(shù):返回:無。(12)realloc原型:voidxdata*realloc(voidxdata*p,unsignedintsize);功能:realloc函數(shù)改變已分配的存儲塊的大小。本程序的源代碼在目錄KEILC5ILIB中,可以根據(jù)硬

19、件環(huán)境定制本函數(shù)。參數(shù):P參數(shù)指向己分配塊,size參數(shù)指定新塊的大小。原塊的內(nèi)容復制到新塊,新塊中的任何其他區(qū),如果是一個更大的塊不初始化。返回:realloc返回一個指向新塊的指針。如果存儲池沒有足夠的存儲區(qū),返回一個NULL指針,存儲塊不受影響。(13)calloc原型:voidxdata*calloc(unsignedintnum,unsignedintlen);功能:calloc函數(shù)從一個數(shù)組分配num個元素的存儲區(qū)。每個元素占用len字節(jié),并清0。字節(jié)總數(shù)為num*len。在LIB目錄提供程序的源代碼??梢孕薷脑闯绦?,為硬件定制本函數(shù)。參數(shù):num為元素數(shù)目,len為每個元素的長度

20、。返回:calloc函數(shù)返回一個指針,指向分配的存儲區(qū),如果不能分配,則返回一個NULL指針。四、流輸入輸出<stdio.h>_getkey原型:char_getkey(void);功能:_getkey函數(shù)等待從串口接收字符。_getkey和putchar函數(shù)的源代碼可以修改,提供針對硬件的字符級的I/O。返回:接收到的字符(2)getchar原型:chargetchar(void);功能:getchar函數(shù)用_getkey函數(shù)從輸入流讀一個字符。所讀的字符用putchar函數(shù)顯示。本函數(shù)基于_getkey或putchar函數(shù)的操作。這些函數(shù),在標準庫中提供,用8051的串口讀和寫

21、字符。定制函數(shù)可以用別的I/O設備。返回:所讀的字符。(3)ungetchar原型:charungetchar(charc);功能:ungetchar函數(shù)把字符c放回到輸入流。子程序被getchar和另U的返回c的流輸入函數(shù)調(diào)用。getchar在調(diào)用時只能傳遞一個字符給ungetehar。參數(shù):返回:如果成功,ungetchar函數(shù)返回字符c。如果調(diào)用者在讀輸入流時調(diào)用ungetchar多次,返回EOF表示一個錯誤條件。(4)putchar原型:charputchr(charc);功能:putchar函數(shù)用8051的串口輸出字符c。本程序指定執(zhí)行,功能可能有變。因提供了_getkey和putc

22、har函數(shù)的源程序,可以根據(jù)任何硬件環(huán)境修改以提供字符級的I/O。參數(shù):返回:putchar函數(shù)返回輸出的字符c。(5)printf原型:intprintf(constchar*fmtstr.arguments);功能:printf函數(shù)格式化一系列的字符串和數(shù)值,生成一個字符串用putchar寫到輸出流。參數(shù):fmtstr參數(shù)是一個格式化字符串,可能是字符、轉(zhuǎn)義系列和格式標識符。普通的字符和轉(zhuǎn)義系列按說明的順序復制到流。格式標識符通常以百分號()開頭,要求在函數(shù)調(diào)用中包含附加的參數(shù)Argumentso格式字符串從左向右讀。第一個格式標識符使用fmtstr后的第一個參數(shù),用格式標識符轉(zhuǎn)換和輸出。

23、第二個格式標識符訪問fmtstr后的第二個參數(shù)。如果參數(shù)比格式標識符多,多出的參數(shù)被忽略。如果參數(shù)不夠,結(jié)果是不可預料的。格式標識符用下面的格式:%flagswidth.precisionb|B|l|Ltype格式標識符中的每個域可以是一個字符或數(shù)字type域是一個字符,指定參數(shù)是否解釋為一個字符、字符串、數(shù)字或指針。如下表所示:可選的字符b或B和l和L可直接放在類型字符前,分別指定整數(shù)類型d、i、u、o、x和X的char或10ng版本。flags域是單個字符,用來對齊、輸出和打印+/-號、空白、小數(shù)點、八進制和十六進制的前綴。如下表所示:width域是一個非負數(shù)字,指定顯示的最小字符數(shù)。如果

24、輸出值的字符數(shù)小于width,空白會加到左邊或右邊(當指定了一個標記)以達到最小的寬度。如果width用一個0'作前綴,則填充的是零而不是空白。width域不會截短一個域。如果輸出值的長度超過指定寬度,則輸出所有的字符。width域可能是星號(*),在這種情況下,參數(shù)列表的一個int參數(shù)提供寬度值。如果參數(shù)使用的是unsignedchar,在星號標識符前指定一個b'。precision域是非負數(shù)字,指定顯示的字符數(shù)、小數(shù)位數(shù)或有效位。precison域可能使輸出值切斷或舍入。precision域可能是星號(*),在這種情況,參數(shù)列表的一個int參數(shù)提供寬度值。如果參數(shù)使用的是u

25、nsignedchar,在星號標識符前指定一個b'。本函數(shù)指定執(zhí)行基于putchar函數(shù)的操作。本函數(shù)作為標準庫提供,用8051的串口寫字符,用別的I/O設備可以定制函數(shù)。必須確保參數(shù)類型和指定的格式匹配??捎妙愋陀成浯_保正確的類型傳遞到printf。可傳遞給printf的總的字節(jié)數(shù)受到8051的存儲區(qū)的限制。SMALL模式和COMPAC微式最多15字節(jié),LARGE模式最多40字節(jié)。返回:printf函數(shù)返回實際寫到輸出流的字符數(shù)。(6)sprintf原型:intsprintf(char*buffer,constchar*fmtstrarguments);功能:sprintf函數(shù)格式化

26、一系列的字符串和數(shù)值,并保存結(jié)果字符串在bufferfintstr。參數(shù):參數(shù)是一個格式字符串,和printf函數(shù)指定的要求相同。返回:sprintf函數(shù)返回實際寫到buffer的字符數(shù)。(7)vprintf原型:voidvprintf(constchar*fmtstr,char*argptr);功能:vprintf函數(shù)格式化一系列字符串和數(shù)字值,并建立一個用puschar函數(shù)寫到輸出流的字符串,函數(shù)類似于printf的副本,但使用參數(shù)列表的指針,而不是一個參數(shù)列表。本函數(shù)是指定執(zhí)行的,基于putchar函數(shù)的操作。本函數(shù)作為標準庫提供,用8051的串口寫字符。別的I/O設備可以定制函數(shù)。參數(shù)

27、:fmtstr參數(shù)是一個指向一個格式字符串的指針,和printf函數(shù)的fmtstr參數(shù)有相同的形式和功能。argptr參數(shù)指向一系列參數(shù),根據(jù)格式中指定的對應格式轉(zhuǎn)換和輸出。返回:vprintf函數(shù)返回實際寫到輸出流的字符數(shù)。(8)vsprimf原型:voidvsprintf(char*buffer,constchar*fmtstr,char*argptr);功能:vsprintf函數(shù)格式化一系列字符串和數(shù)字值,并保存字符串在Buffer中。函數(shù)類似于sprintf的副本,但使用參數(shù)列表的指針,而不是一個參數(shù)列表。參數(shù):fmtstr參數(shù)是一個指向一個格式字符串的指針,和printf函數(shù)的fmt

28、str參數(shù)有相同的形式和功能。argptr參數(shù)指向一系列參數(shù),根據(jù)格式中指定的對應格式轉(zhuǎn)換和輸出。返回:vsprintf函數(shù)返回實際寫到輸出流的字符數(shù)。(9)gets原型:char*gets(char*string,intlen);功能:gets函數(shù)調(diào)用getchar函數(shù)讀一行字符到string。這行包括所有的字符和換行符('n')。在string中換行符被一個NULL字符('n')替代。len參數(shù)指定可讀的最多字符數(shù)。如果長度超過len,gets函數(shù)用NULL字符終止string并返回。本函數(shù)指定執(zhí)行基于_getkey或putchar函數(shù)的操作。這些函數(shù),在標

29、準庫中提供,用8051的串口讀寫。對別的I/O設備可以定制。參數(shù):string要讀的字符串,len最多字符數(shù)。返回:gets函數(shù)返回string(10)scanf原型:intscanf(sonstchar*fmtstr,argument);功能:scanf函數(shù)用getchar程序讀數(shù)據(jù)。輸入的數(shù)據(jù)保存在由argument根據(jù)格式字符串fmtstr指定的位置。參數(shù):每個argument必須是一個指針,指向一個變量,對應fmtstr定義的類型,fmtstr控制解釋輸入的數(shù)據(jù),fmtstr參數(shù)由一個或單個空白字符、非空白字符和下面定義的格式標識符組成。 空白字符,空白(),制表('t'

30、;)或換行('n'),使scanf跳過輸入流中的空白字符。格式字符串中的單個的空白字符匹配輸入流的0或多個空白字符。 非空白字符,除了百分號(''),使scanf從輸入流讀但不保存一個匹配字符。如果輸入流的下一個字符和指定的非空白字符不匹配,scanf函數(shù)終止。 格式標識符以百分號(')開頭,使scanf從輸入流讀字符,并轉(zhuǎn)換字符到指定的類型值。轉(zhuǎn)換后的值保存在參數(shù)列表的argument中。百分號后面的字符不被認為是一個格式標識符,只作為一個普通字符。例如%匹配輸入流的一個百分號。格式字符串從左向右讀,不是格式標識符的字符必須和輸入流的字符匹配。這些字符

31、從輸入流讀入,但不保存,如果輸入流的一個字符和格式字符串沖突,scanf終止。任何沖突的字符仍保留在輸入流中。在格式字符串中的第一個格式標識符引用fmtstr后面的第一個參數(shù),并轉(zhuǎn)化輸入字符,用格式標識符保存值。第二個格式標識符訪問fmtstr后面的第二個參數(shù),等等。如果參數(shù)比格式標識符多,多出的參數(shù)被忽略。如果沒有足夠的參數(shù)匹配格式標識符,結(jié)果是不可預料的。輸入流中的值被輸入域調(diào)用,用空白字符隔開。在轉(zhuǎn)換輸入域時,scanf遇到一個空白字符就結(jié)束一個參數(shù)的轉(zhuǎn)換,而且任何當前格式標識符不認識的字符會結(jié)束一個域轉(zhuǎn)換。格式標識符的格式:*widthb|h|ltype格式標識符中的每個域可以是單個字

32、符或數(shù)字,用來指定一個特殊的格式選項。type域是單個字符,指定輸入字符是否解釋為一個字符、字符串或數(shù)字。本域可以是下表中的任何值。以星號(*)作為格式標識符的第一個字符,會使輸入域被掃描但不保存。星號禁止和格式標識符關聯(lián)。width域是一個非負數(shù),指定從輸入流讀入的最多字符數(shù)。從輸入流讀入的字符不超過width,并根據(jù)相應的argument轉(zhuǎn)換。然而,如果一個空白字符或一個不認識字符先遇到,則讀入的字符數(shù)小于widtho可選字符b,h和l直接放在類型字符前面,分別指定整數(shù)類型d,i,u,。和x的char,short或long版本。本函數(shù)指定執(zhí)行基于_getkey或putchar函數(shù)的操作。這

33、些函數(shù),作為標準庫提供,用8051的串口讀寫??蓪α?J的I/O設備定制函數(shù)??梢詡鬟f給scanf的字節(jié)數(shù)受8051存儲區(qū)的限制。SMALL模式或COMPAC做式最多為15字節(jié)。LARGE模式最多為40字節(jié)。返回:scanf函數(shù)返回成功轉(zhuǎn)換的輸入域的數(shù)目。如果有錯誤則返回EOF(11)sscanf原型:intsscanf(char*buffer,constchar*fmtstr,argument);功能:sscanf函數(shù)從buffer讀字符串。參數(shù):輸入的數(shù)據(jù)保存在由argument根據(jù)格式字符串fmtstr指定的位置。每個argument必須是指向變量的指針,對應定義在fmtstr的類型,控

34、制輸入數(shù)據(jù)的解釋。fmtstr參數(shù)由一個或多個空白字符、非空白字符和格式標識符組成,如同scanf函數(shù)所定義。返回:sscanf函數(shù)返回成功轉(zhuǎn)換的輸入域的數(shù)目,如果出現(xiàn)錯誤則返回EOF(12)puts原型:intputs(constchar*string);功能:puts函數(shù)用putchar函數(shù)寫string和換行符n到輸出流。本函數(shù)指定執(zhí)行基于putchar函數(shù)的操作。本函數(shù)作為標準庫提供,寫字符到8051的串口。用別的I/O可以定制函數(shù)。參數(shù):輸出的字符串。返回:如果出現(xiàn)錯誤,puts函數(shù)返回EOF,如果沒有則返回0。五、字符測試<ctype.h>(1)isalpha原型:bi

35、tisalpha(charc);功能:isalpha函數(shù)測試參數(shù)c,確定是否是一個字母(A''Z',a''z')。返回:如果c是一個字母,isalpha函數(shù)返回1(真),否則返回0(假)。(2)isalnum原型:bitisalnum(charc);功能:isalnum函數(shù)測試參數(shù)c,確定是否是一個字母或數(shù)字字符(A''Z',a''z','0'9')。返回:如果c是一個字母或數(shù)字字符,isalnum函數(shù)返回1(真),否則返回0(假)。(3)iscntrl原型:bitiscnt

36、rl(charc);功能:iscntrl函數(shù)測試參數(shù)c,確定是否是一個控制字符(0x000x1F或0x7F)。返回:如果c是一個控制字符,iscntrl函數(shù)返回1(真),否則返回0(假)。(4)isdigit原型:bitisdigit(charc);功能:isdigit函數(shù)測試參數(shù)c,確定是否是一個十進制數(shù)(0'9')。返回:如果c是一個十進制數(shù),isdigit函數(shù)返回1(真),否則返回0(假)。(5)isgraph原型:bitisgraph(charc);功能:isgraph函數(shù)測試參數(shù)c,確定是否是一個可打印字符(0x210x7E,不包才空格)。返回:如果c是一個可打印字符

37、,isgraph函數(shù)返回1(真),否則返回0(假)。(6)isprint原型:bitisprint(charc);功能:isprint函數(shù)測試參數(shù)c,確定是否是一個可打印字符(0x200x7E)。返回:如果c是一個可打印字符,isprint函數(shù)返回1(真),否則返回0(假)。(7)ispunct原型:bitispunct(charc);功能:ispunct函數(shù)測試參數(shù)c,確定是否是一個標點符號字符(!,.:;?”#$%&''()<>*+-=小A_)。返回:如果c是一個標點符號字符,ispunct函數(shù)返回1(真),否則返回0(假)。(8)islower原型:b

38、itislower(charc);功能:islower函數(shù)測試參數(shù)c,確定是否是一個小寫字母字符(az')。返回:如果c是一個小寫字母字符,islower函數(shù)返回1(真),否則返回0(假)。(9)isupper原型:bitisupper(charc);功能:isupper函數(shù)測試參數(shù)c,確定是否是一個大寫字母字符(A'Z')。返回:如果c是一個大寫字母字符,isupper函數(shù)返回1(真),否則返回0(假)。(10)isspace原型:bitisspace(charc);功能:isspace函數(shù)測試參數(shù)c,確定是否是一個空白字符(0x090x0D或0x20)。返回:如果c

39、是一個空白字符,isspace函數(shù)返回1(真),否則返回0(假)。(11)isxdigit原型:bitisalnum(charc);功能:isalnum函數(shù)測試參數(shù)c,確定是否是一個十六進制數(shù)(A''F',a''f','0'9')。返回:如果c是一個十六進制數(shù),isalnum函數(shù)返回1(真),否則返回0(假)。(12)tolower原型:chartolower(charc);功能:tolower函數(shù)轉(zhuǎn)換c為一個小寫字符。如果c不是一個字母,tolower函數(shù)無效。(13)toupper原型:chartoupper(char

40、c);功能:toupper函數(shù)轉(zhuǎn)換c為一個大寫字符。如果c表示一個字母,toupper函數(shù)無效。參數(shù):返回:toupper宏返回c的大寫。(14)toint原型:chartoint(charc);功能:toint函數(shù)解釋c為十六進制值。ASCII字符09'生成值09。ASCII字符A''F和a'f'生成值1015。如果c表示一個十六進制數(shù),函數(shù)返回-1。返回:toint宏返回c的十六進制ASCII值。(15)_tolower原型:#define_tolower(c)(c)-'A'+'a')功能:_tolower宏是在已知c

41、是一個大寫字符的情況下可用的lower的一個版本。返回:tolower宏返回c的小寫。(16)_toupper原型:#define_toupper(c)(c)-'a'+'A')功能:_toupper宏是在已知c是一個小寫字符的情況下可用的toupper的一個版本。返回:_toupper宏返回c的大寫。(17)toascii原型:#definetoascii(c)(c)&0x7F)功能:toascii宏轉(zhuǎn)換c為一個7位ASCII字符。宏只轉(zhuǎn)換變量c的低7位。返回:toascii宏返回c的7位ASCII字符。六、跳轉(zhuǎn)<setjmp.h>(1)se

42、tjmp原型:volatileintsetjmp(jmp_bufenv);功能:setjmp函數(shù)保存當前CPU的狀態(tài)在env,該狀態(tài)可以調(diào)用longjmp函數(shù)來恢復。參數(shù):當同時使用時,setjmp和longjmp函數(shù)提供一種方法實行非局部跳轉(zhuǎn)。setjmp函數(shù)保存當前指令地址和別的CPU寄存器。一個longjmp的并發(fā)調(diào)用恢復指令指針和寄存器,在setjmp調(diào)用后面恢復運行。只有聲明了volatile屬性的局部變量和函數(shù)參數(shù)被恢復。返回:當CPU的當前狀態(tài)被復制到env,setjmp函數(shù)返回一個0。一個非零值表示執(zhí)行了longjmp函數(shù)來返回setjmp函數(shù)調(diào)用。在這種情況下,返回值是傳遞給

43、longjmp函數(shù)的值。(2)longjmp原型:volatilevoidlongjmp(jmp_bufenv,intretval);功能:longjmp函數(shù)恢復用setjmp函數(shù)保存在env的狀態(tài)。retval參數(shù)指定從setjmp函數(shù)調(diào)用返回值。longjmp和setjmp函數(shù)可以用來執(zhí)行非局部跳轉(zhuǎn),通常用來控制一個錯誤恢復程序。只有用volatile屬性聲明的局部變量和函數(shù)參數(shù)被恢復。七、字符串操作<string.h>(1)strcat原型:char*strcat(char*s1,char*s2);功能:strcat函數(shù)連接或添加s2到s1,并用NULL字符終止s1。參數(shù):s

44、1目標字符串,s2源字符串。返回:s1o(2)strncat原型:char*strncat(char*s1,char*s2,intlen);功能:strncat函數(shù)從s2添加最多l(xiāng)en個字符到s1,并用NULL結(jié)束。如果s2的長度小于len,s2連帶NULL全部復制。參數(shù):s1目標字符串,s2源字符串,len連接的最多字符數(shù)。返回:strncat函數(shù)返回s1。(3)strcmp原型:charstrcmp(char*s1,char*s2);功能:strcmp函數(shù)比較字串s1和s2的內(nèi)容,并返回一個值表示它們的關系。返回:若s1<s2返回負數(shù);若s1=s2返回0;若s1>s2返回正數(shù)。

45、(4)strncmp型能數(shù)回原功參返char*strncmp(char*si,char*s2,intlen);strncmp函數(shù)比較si的前l(fā)en字節(jié)和s2,返回一個值表示它們的關系。si,s2為字串,len為比較的長度。若si<s2返回負數(shù);若si=s2返回0;若si>s2返回正數(shù)。(5)strcpy原型:char*strcpy(char*s1,char*s2);功能:strcpy函數(shù)復制字符串s2到字符串si,并用NULL字符結(jié)束si。參數(shù):si目標字符串,s2源字符串。s1。(6)strncpy原型:char*strncpy(char*dest,char*s2,intlen)

46、;功能:strncpy函數(shù)從字符串s2復制最多l(xiāng)en個字符到字符串si。si。(7)strlen原型:intstrlen(char*s);功能:strlen函數(shù)計算字符串s的字節(jié)數(shù),不包括NULL結(jié)束符。參數(shù):s要測試長度的字串。返回:字符串s的長度。(8)strchr原型:char*strchr(constchar*s,charc);功能:strchr函數(shù)搜索字符串s中第一個出現(xiàn)的c。s中的NULL字符終止搜索。參數(shù):s被搜索的字符串,c要查找的字符。返回:字符串s中指向c的指針,如沒有發(fā)現(xiàn)則返回一個NULL指針。(9)strops原型:intstrpos(constchar*s,charc

47、);功能:strpos函數(shù)查找字符串s中c的第一次出現(xiàn),包括s的NULL結(jié)束符。參數(shù):s被搜索的字符串,c要查找的字符。返回:s中和c匹配的字符的索引。如沒匹配則返回-1。s中第一個字符的索引是0。(10)strrchr原型:char*strrchr(constchar*s,charc);功能:strrchr函數(shù)查找字符串s中c的最后一次出現(xiàn),包括s的NULL結(jié)束符。參數(shù):s被搜索的字符串,c要查找的字符。返回:strrchr函數(shù)返回s中和c匹配的字符的指針,如沒匹配則返回NULL。(ii)strrpos原型:intstrrpos(constchar*s,charc);s的NULL結(jié)束符。功能

48、:strrpos函數(shù)查找字符串s中c的最后一次出現(xiàn),包括參數(shù):s被搜索的字符串,c要查找的字符。返回:s中和c匹配的最后字符的索引。如沒匹配則返回-1,s中第一個字符的索引是0。(12)strcspn原型:intstrcspn(char*s,char*set);功能:在字符串s中查找字符串set中的任何字符。參數(shù):s源字串,set查找的字串。返回:strcspn函數(shù)返回s中和set匹配的第一個字符的索引。如果s的第一個字符和set中的一個字符匹配,返回0。如果s中沒有字符匹配,返回字符串的長度。(13)strpbrk原型:char*strpbrk(char*s,char*set);功能:查找字符串s中第一個出現(xiàn)的set中的任何字符,不包括NULL結(jié)束符。參數(shù):s源字串,set查找的字串。返回:s匹配的字符的指針。如果s沒有字符和set匹配,返回一個NULL指針。(14)strrpbrk原型:char*strrpbrk(char*s,char*set);功能:查找字符串s中最后一個出現(xiàn)的set中的任何字符,不包括NULL結(jié)束符。返回:s最后匹配的字符的指針。如果s沒有字符和set匹配,返回一個NULL指針。(15)strspn原型:intstrspn(char*s,char*set);功能:查找字符串s中set沒有的字符。返回:strspn函數(shù)返回s第一個和set

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論