下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Keilc51函數(shù)參考、數(shù)學(xué)函數(shù)<math.h>(1)cabs原型:charcabs(charval);功能:cabs函數(shù)取val的絕對(duì)值。參數(shù):一字節(jié)數(shù)val。返回:cabs返回val的絕對(duì)值。(2)abs原型:Intabs(intval);功能:求絕對(duì)值參數(shù):val整型數(shù)返回:val的絕對(duì)值(3)labs原型:longlabs(longval);功能:labs函數(shù)確定長(zhǎng)整數(shù)val的絕對(duì)值。返回:val的絕對(duì)值。(4)fabs原型:floatfabs(floatval);功能:fabs函數(shù)確定浮點(diǎn)數(shù)val的絕對(duì)值。參數(shù):返回:fabs返回val的絕對(duì)值。(5)sqrt原型:flo
2、atsprt(floatx);功能:sqrt函數(shù)計(jì)算x的平方根。返回:sqrt函數(shù)返回x的正平方根。(6)exp原型:floatexp(floatx);功能:exp函數(shù)計(jì)算自然對(duì)數(shù)中e的x次哥。e2.71828182845953581496,是無(wú)限循環(huán)小數(shù)。返回:ex的值。(7)log原型:floatlog(floatval);功能:log函數(shù)計(jì)算浮點(diǎn)數(shù)val的自然對(duì)數(shù)。自然對(duì)數(shù)基數(shù)為e。返回:val的浮點(diǎn)自然對(duì)數(shù)。(8)log10原型:floatlog10(floatval);功能:logl0函數(shù)計(jì)算浮點(diǎn)數(shù)val的常用對(duì)數(shù)。常用對(duì)數(shù)為基數(shù)10。返回:val的浮點(diǎn)常用對(duì)數(shù)。(9)sin原型:f
3、loatsln(floatx);功能:sin函數(shù)計(jì)算浮點(diǎn)數(shù)x的正弦值。參數(shù):x必須在-6553565535之間,或產(chǎn)生一個(gè)NaN錯(cuò)誤。返回:sin函數(shù)返回x的正弦。(10)cos原型:floatcos(floatx);功能:COS函數(shù)計(jì)算浮點(diǎn)數(shù)X的余弦。X的值必須在-6553565535之間,或產(chǎn)生一個(gè)NaN錯(cuò)誤。COS函數(shù)返回X的余弦。(11)tan原型:floattan(floatx);功能:tan函數(shù)計(jì)算浮點(diǎn)數(shù)x的正切值。x必須在-6553565535之間,或錯(cuò)誤值NaN。tan函數(shù)返回x的正切。(12)asinfloatasin(floatx);功能:求反正弦浮點(diǎn)數(shù)x,取值必須在-11
4、之間。X的反正弦,值在-兀/2兀/2之間。(13)acosfloatacos(floatx);功能:求反余弦數(shù)回參返浮點(diǎn)數(shù)x,取值必須在-11之間。x的反余弦,值在0兀之間。(14)atanfloatatan(floatx);功能:求反正切浮點(diǎn)數(shù)x,取值必須在-11之間。X的反正切,值在-兀/2兀/2之間。(15)sinhfloatsinh(floatx);功能:sinh函數(shù)計(jì)算浮點(diǎn)數(shù)X的雙曲正弦。參數(shù):x必須在-6553565535之間,或產(chǎn)生一個(gè)NaN錯(cuò)誤。返回:sinh函數(shù)返回x的雙曲正弦。(16)cosh原型:floatcosh(floatx);功能:cosh函數(shù)計(jì)算浮點(diǎn)數(shù)X的雙曲余弦
5、。參數(shù):返回:cosh函數(shù)返回X的雙曲余弦。(17)tanh原型:floattanh(floatx);功能:tanh函數(shù)計(jì)算浮點(diǎn)數(shù)x的雙曲正切。返回:tanh函數(shù)返回x的雙曲正切。(18)atan2原型:floatatan2(floaty,floatx);功能:計(jì)算浮點(diǎn)數(shù)y/x的反正切。參數(shù):浮點(diǎn)數(shù)y,浮點(diǎn)數(shù)x。返回:反正切值,值在-兀兀之間。x和y的符號(hào)確定返回值的象限。(19)ceil原型:floatceil(floatval)功能:ceil函數(shù)計(jì)算大于或等于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的浮點(diǎn)余數(shù)。(22)modf原型:floatmodf(floatval,float*ip);功能:modf函數(shù)把浮點(diǎn)數(shù)val分成整數(shù)和小數(shù)部分。返回:modf函數(shù)返回帶符號(hào)小數(shù)部分val。整數(shù)部分保存在浮點(diǎn)數(shù)ip中。(23)pow原型:floatpow(floatx,floaty);功能:pow函數(shù)計(jì)算x的y次哥。返回:pow函數(shù)返回值xyo如果xw0和y=O,pow返回值1;如果x=0和y&
7、lt;0,pow返回NaN。如果x<O和y不是一個(gè)整數(shù),pow返回NaN。<intrins.h>_nop_void_nop_(void);功能:nop插入一個(gè)8051NOP空操作指令到程序,用來(lái)停頓1個(gè)CPU周期。本程序是固有函數(shù),代碼要求內(nèi)嵌而不是調(diào)用。返回:無(wú)。(2)_testbit_bit_testbit_(bitb);功能:3$也憶程序在生成的代碼中用JBC指令來(lái)測(cè)試位b,并清零。參數(shù):本程序只能用在直接尋址位變量,對(duì)任何類型的表達(dá)式無(wú)效。固有函數(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(zhǎng)整數(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(zhǎng)整數(shù)l循環(huán)左移b位。固有函數(shù),代碼要求內(nèi)嵌而不是被調(diào)用。參數(shù):l要左移白勺數(shù),b要左移的位數(shù)。返回:返回左移后的值。(9)_chkfloat_原型:unsignedchar_chkfloat_(floatval);功能:檢查浮點(diǎn)數(shù)的狀態(tài)。參數(shù):浮點(diǎn)型變量。返回:0,標(biāo)準(zhǔn)浮點(diǎn)數(shù);1,浮點(diǎn)數(shù)0;2,正溢出;3,負(fù)溢出;4,NaN(不是一個(gè)數(shù))錯(cuò)誤狀O(10)_push_原型:void_push_(unsignedchar_sfr);功能:將特殊功能寄存器_sf
11、r壓入堆棧。(11)_pop_原型:void_pop_(unsignedchar_sfr);功能:將堆棧中的數(shù)據(jù)彈出到特殊功能寄存器_sfr。三、字串轉(zhuǎn)數(shù)字,隨機(jī)數(shù),存儲(chǔ)池管理<stdlib.h>(1)atof原型:floatatof(void*string);功能:將浮點(diǎn)數(shù)格式的字符串轉(zhuǎn)換為浮點(diǎn)數(shù)。如果string的第一個(gè)字符不能轉(zhuǎn)換成數(shù)字,就停止處理。參數(shù):格式為,+|-數(shù)字.數(shù)字e|E+|-數(shù)字。如,-12.345e+67返回:atof函數(shù)返回string的浮點(diǎn)值。(2)atoi原型:intatoi(void*string);功能:atoi函數(shù)轉(zhuǎn)換string為一個(gè)整數(shù)值。s
12、tring是一個(gè)字符序列,可以解釋為一個(gè)整數(shù)。如果string的第一個(gè)字符不能轉(zhuǎn)換成數(shù)字,就停止處理。參數(shù):atoi函數(shù)要求string有這樣的格式:空格+|-數(shù)字,如"123456”。返回:atoi函數(shù)返回string的整數(shù)值。(3)atol原型:longatol(void*string);功能:atol函數(shù)轉(zhuǎn)換string為一個(gè)長(zhǎng)整數(shù)值。string是一個(gè)字符序列,可以解釋為一個(gè)長(zhǎng)整數(shù)。如果string的第一個(gè)字符不能轉(zhuǎn)換成數(shù)字,就停止處理。參數(shù):atol函數(shù)要求string有這樣的格式:空格+|-數(shù)字,如"1234567890”。返回:atol函數(shù)返回string的長(zhǎng)
13、整數(shù)值。(4)rand原型:intrand(void);功能:rand函數(shù)產(chǎn)生一個(gè)032767之間的虛擬隨機(jī)數(shù)。返回:rand函數(shù)返回一個(gè)虛擬隨機(jī)數(shù)。(5)srand原型:voidsrand(intseed);功能:srand函數(shù)設(shè)置rand函數(shù)所用的虛擬隨機(jī)數(shù)發(fā)生器的起始值seed,隨機(jī)數(shù)發(fā)生器對(duì)任何確定值seed產(chǎn)生相同的虛擬隨機(jī)數(shù)序列。返回:無(wú)。(6)strtod原型:unsignedlongstrtod(constchar*string,char*ptr);功能:strtod函數(shù)將一個(gè)浮點(diǎn)數(shù)格式的字符串string轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)。字符串開頭的空白字符被忽略。參數(shù):要求string有下
14、面的格式:+|-digits.digitse|E+|-digitsdigits可能是一個(gè)或多個(gè)十進(jìn)制數(shù)。ptr的值設(shè)置指針到string中轉(zhuǎn)換部分的第一個(gè)字符。如果ptr是NULL沒有值和ptr關(guān)聯(lián)。如果不能轉(zhuǎn)換,則prt就設(shè)為string的值,strtod返回0。返回:strtod函數(shù)返回由string生成的浮點(diǎn)數(shù)。(7)strtol原型:longstrtol(constchar*string,char*ptr,unsignedcharbase);功能:strtol函數(shù)將一個(gè)數(shù)字字串string轉(zhuǎn)換為一個(gè)long值。參數(shù):輸入string是一個(gè)字符序列,可以解釋為一個(gè)整數(shù)。字符串開頭的空白字
15、符被忽略,符號(hào)可選。要求string有下面的格式:whitespace+|-digitsdigits可能是一個(gè)或多個(gè)十進(jìn)制數(shù)。如果base是零,數(shù)值應(yīng)該有一個(gè)十進(jìn)制常數(shù)、八進(jìn)制常數(shù)或十六進(jìn)制常數(shù)的格式。數(shù)值的基數(shù)從格式推出。如果base在236之間,數(shù)值必須是一個(gè)字母或數(shù)字的非零序列,表示指定基數(shù)的一個(gè)整數(shù)。字母az(或AZ)分別表示值1036。只有小于base的字母表示的值是允許的。如果base是16,數(shù)值可能以0x或0X開頭,0x或0x被忽略。prt的值設(shè)置指針指向string中轉(zhuǎn)換部分的第一個(gè)字符。如果prt是NULL.,沒有值和ptr關(guān)聯(lián)。如果不能轉(zhuǎn)換,prt設(shè)置為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為一個(gè)unsignedlong值。參數(shù):與strtol函數(shù)類似。返回:strtoul函數(shù)返回string生成的整數(shù)值。如溢出則返回ULONG_MAX(9)init_mempool原型:voidinti_mempool(voidxdata*p,unsignedintsize);功能:ini
17、t_mempool函數(shù)初始化存儲(chǔ)管理程序,提供存儲(chǔ)池的開始地址和大小。本函數(shù)必須在任何其他的存儲(chǔ)管理函數(shù)(calloc,free,malloc,realloc)被調(diào)用前設(shè)置存儲(chǔ)池,只在程序的開頭調(diào)用一次。可以修改源程序以適合硬件環(huán)境。參數(shù):p參數(shù)指向一個(gè)xdata的存儲(chǔ)區(qū),用calloc,free,malloc和realloc庫(kù)函數(shù)管理。size參數(shù)指定存儲(chǔ)池所用的字節(jié)數(shù)。返回:無(wú)。(10)malloc原型:voidxdata*malloc(unsignedintsize);功能:malloc函數(shù)從存儲(chǔ)池分配size字節(jié)的存儲(chǔ)塊。返回:malloc返回一個(gè)指向所分配的存儲(chǔ)塊的指針,如果沒有足夠
18、的空間,則返回一個(gè)NULL指針。(11)free原型:voidfree(voidxdata*p);功能:free函數(shù)返回一個(gè)存儲(chǔ)塊到存儲(chǔ)池。p參數(shù)指向用calloc、malloc或realloc函數(shù)分配的存儲(chǔ)塊。一旦塊返回到存儲(chǔ)就可被再分配。如果p是一個(gè)NULL指針,被忽略。本程序的源代碼在KEILC51LIB目錄中,可以修改源程序,根據(jù)硬件來(lái)定制本程序。參數(shù):返回:無(wú)。(12)realloc原型:voidxdata*realloc(voidxdata*p,unsignedintsize);功能:realloc函數(shù)改變已分配的存儲(chǔ)塊的大小。本程序的源代碼在目錄KEILC5ILIB中,可以根據(jù)硬
19、件環(huán)境定制本函數(shù)。參數(shù):P參數(shù)指向己分配塊,size參數(shù)指定新塊的大小。原塊的內(nèi)容復(fù)制到新塊,新塊中的任何其他區(qū),如果是一個(gè)更大的塊不初始化。返回:realloc返回一個(gè)指向新塊的指針。如果存儲(chǔ)池沒有足夠的存儲(chǔ)區(qū),返回一個(gè)NULL指針,存儲(chǔ)塊不受影響。(13)calloc原型:voidxdata*calloc(unsignedintnum,unsignedintlen);功能:calloc函數(shù)從一個(gè)數(shù)組分配num個(gè)元素的存儲(chǔ)區(qū)。每個(gè)元素占用len字節(jié),并清0。字節(jié)總數(shù)為num*len。在LIB目錄提供程序的源代碼??梢孕薷脑闯绦颍瑸橛布ㄖ票竞瘮?shù)。參數(shù):num為元素?cái)?shù)目,len為每個(gè)元素的長(zhǎng)度
20、。返回:calloc函數(shù)返回一個(gè)指針,指向分配的存儲(chǔ)區(qū),如果不能分配,則返回一個(gè)NULL指針。四、流輸入輸出<stdio.h>_getkey原型:char_getkey(void);功能:_getkey函數(shù)等待從串口接收字符。_getkey和putchar函數(shù)的源代碼可以修改,提供針對(duì)硬件的字符級(jí)的I/O。返回:接收到的字符(2)getchar原型:chargetchar(void);功能:getchar函數(shù)用_getkey函數(shù)從輸入流讀一個(gè)字符。所讀的字符用putchar函數(shù)顯示。本函數(shù)基于_getkey或putchar函數(shù)的操作。這些函數(shù),在標(biāo)準(zhǔn)庫(kù)中提供,用8051的串口讀和寫
21、字符。定制函數(shù)可以用別的I/O設(shè)備。返回:所讀的字符。(3)ungetchar原型:charungetchar(charc);功能:ungetchar函數(shù)把字符c放回到輸入流。子程序被getchar和另U的返回c的流輸入函數(shù)調(diào)用。getchar在調(diào)用時(shí)只能傳遞一個(gè)字符給ungetehar。參數(shù):返回:如果成功,ungetchar函數(shù)返回字符c。如果調(diào)用者在讀輸入流時(shí)調(diào)用ungetchar多次,返回EOF表示一個(gè)錯(cuò)誤條件。(4)putchar原型:charputchr(charc);功能:putchar函數(shù)用8051的串口輸出字符c。本程序指定執(zhí)行,功能可能有變。因提供了_getkey和putc
22、har函數(shù)的源程序,可以根據(jù)任何硬件環(huán)境修改以提供字符級(jí)的I/O。參數(shù):返回:putchar函數(shù)返回輸出的字符c。(5)printf原型:intprintf(constchar*fmtstr.arguments);功能:printf函數(shù)格式化一系列的字符串和數(shù)值,生成一個(gè)字符串用putchar寫到輸出流。參數(shù):fmtstr參數(shù)是一個(gè)格式化字符串,可能是字符、轉(zhuǎn)義系列和格式標(biāo)識(shí)符。普通的字符和轉(zhuǎn)義系列按說明的順序復(fù)制到流。格式標(biāo)識(shí)符通常以百分號(hào)()開頭,要求在函數(shù)調(diào)用中包含附加的參數(shù)Argumentso格式字符串從左向右讀。第一個(gè)格式標(biāo)識(shí)符使用fmtstr后的第一個(gè)參數(shù),用格式標(biāo)識(shí)符轉(zhuǎn)換和輸出。
23、第二個(gè)格式標(biāo)識(shí)符訪問fmtstr后的第二個(gè)參數(shù)。如果參數(shù)比格式標(biāo)識(shí)符多,多出的參數(shù)被忽略。如果參數(shù)不夠,結(jié)果是不可預(yù)料的。格式標(biāo)識(shí)符用下面的格式:%flagswidth.precisionb|B|l|Ltype格式標(biāo)識(shí)符中的每個(gè)域可以是一個(gè)字符或數(shù)字type域是一個(gè)字符,指定參數(shù)是否解釋為一個(gè)字符、字符串、數(shù)字或指針。如下表所示:可選的字符b或B和l和L可直接放在類型字符前,分別指定整數(shù)類型d、i、u、o、x和X的char或10ng版本。flags域是單個(gè)字符,用來(lái)對(duì)齊、輸出和打印+/-號(hào)、空白、小數(shù)點(diǎn)、八進(jìn)制和十六進(jìn)制的前綴。如下表所示:width域是一個(gè)非負(fù)數(shù)字,指定顯示的最小字符數(shù)。如果
24、輸出值的字符數(shù)小于width,空白會(huì)加到左邊或右邊(當(dāng)指定了一個(gè)標(biāo)記)以達(dá)到最小的寬度。如果width用一個(gè)0'作前綴,則填充的是零而不是空白。width域不會(huì)截短一個(gè)域。如果輸出值的長(zhǎng)度超過指定寬度,則輸出所有的字符。width域可能是星號(hào)(*),在這種情況下,參數(shù)列表的一個(gè)int參數(shù)提供寬度值。如果參數(shù)使用的是unsignedchar,在星號(hào)標(biāo)識(shí)符前指定一個(gè)b'。precision域是非負(fù)數(shù)字,指定顯示的字符數(shù)、小數(shù)位數(shù)或有效位。precison域可能使輸出值切斷或舍入。precision域可能是星號(hào)(*),在這種情況,參數(shù)列表的一個(gè)int參數(shù)提供寬度值。如果參數(shù)使用的是u
25、nsignedchar,在星號(hào)標(biāo)識(shí)符前指定一個(gè)b'。本函數(shù)指定執(zhí)行基于putchar函數(shù)的操作。本函數(shù)作為標(biāo)準(zhǔn)庫(kù)提供,用8051的串口寫字符,用別的I/O設(shè)備可以定制函數(shù)。必須確保參數(shù)類型和指定的格式匹配??捎妙愋陀成浯_保正確的類型傳遞到printf??蓚鬟f給printf的總的字節(jié)數(shù)受到8051的存儲(chǔ)區(qū)的限制。SMALL模式和COMPAC微式最多15字節(jié),LARGE模式最多40字節(jié)。返回:printf函數(shù)返回實(shí)際寫到輸出流的字符數(shù)。(6)sprintf原型:intsprintf(char*buffer,constchar*fmtstrarguments);功能:sprintf函數(shù)格式化
26、一系列的字符串和數(shù)值,并保存結(jié)果字符串在bufferfintstr。參數(shù):參數(shù)是一個(gè)格式字符串,和printf函數(shù)指定的要求相同。返回:sprintf函數(shù)返回實(shí)際寫到buffer的字符數(shù)。(7)vprintf原型:voidvprintf(constchar*fmtstr,char*argptr);功能:vprintf函數(shù)格式化一系列字符串和數(shù)字值,并建立一個(gè)用puschar函數(shù)寫到輸出流的字符串,函數(shù)類似于printf的副本,但使用參數(shù)列表的指針,而不是一個(gè)參數(shù)列表。本函數(shù)是指定執(zhí)行的,基于putchar函數(shù)的操作。本函數(shù)作為標(biāo)準(zhǔn)庫(kù)提供,用8051的串口寫字符。別的I/O設(shè)備可以定制函數(shù)。參數(shù)
27、:fmtstr參數(shù)是一個(gè)指向一個(gè)格式字符串的指針,和printf函數(shù)的fmtstr參數(shù)有相同的形式和功能。argptr參數(shù)指向一系列參數(shù),根據(jù)格式中指定的對(duì)應(yīng)格式轉(zhuǎn)換和輸出。返回:vprintf函數(shù)返回實(shí)際寫到輸出流的字符數(shù)。(8)vsprimf原型:voidvsprintf(char*buffer,constchar*fmtstr,char*argptr);功能:vsprintf函數(shù)格式化一系列字符串和數(shù)字值,并保存字符串在Buffer中。函數(shù)類似于sprintf的副本,但使用參數(shù)列表的指針,而不是一個(gè)參數(shù)列表。參數(shù):fmtstr參數(shù)是一個(gè)指向一個(gè)格式字符串的指針,和printf函數(shù)的fmt
28、str參數(shù)有相同的形式和功能。argptr參數(shù)指向一系列參數(shù),根據(jù)格式中指定的對(duì)應(yīng)格式轉(zhuǎn)換和輸出。返回:vsprintf函數(shù)返回實(shí)際寫到輸出流的字符數(shù)。(9)gets原型:char*gets(char*string,intlen);功能:gets函數(shù)調(diào)用getchar函數(shù)讀一行字符到string。這行包括所有的字符和換行符('n')。在string中換行符被一個(gè)NULL字符('n')替代。len參數(shù)指定可讀的最多字符數(shù)。如果長(zhǎng)度超過len,gets函數(shù)用NULL字符終止string并返回。本函數(shù)指定執(zhí)行基于_getkey或putchar函數(shù)的操作。這些函數(shù),在標(biāo)
29、準(zhǔn)庫(kù)中提供,用8051的串口讀寫。對(duì)別的I/O設(shè)備可以定制。參數(shù):string要讀的字符串,len最多字符數(shù)。返回:gets函數(shù)返回string(10)scanf原型:intscanf(sonstchar*fmtstr,argument);功能:scanf函數(shù)用getchar程序讀數(shù)據(jù)。輸入的數(shù)據(jù)保存在由argument根據(jù)格式字符串fmtstr指定的位置。參數(shù):每個(gè)argument必須是一個(gè)指針,指向一個(gè)變量,對(duì)應(yīng)fmtstr定義的類型,fmtstr控制解釋輸入的數(shù)據(jù),fmtstr參數(shù)由一個(gè)或單個(gè)空白字符、非空白字符和下面定義的格式標(biāo)識(shí)符組成。 空白字符,空白(),制表('t'
30、;)或換行('n'),使scanf跳過輸入流中的空白字符。格式字符串中的單個(gè)的空白字符匹配輸入流的0或多個(gè)空白字符。 非空白字符,除了百分號(hào)(''),使scanf從輸入流讀但不保存一個(gè)匹配字符。如果輸入流的下一個(gè)字符和指定的非空白字符不匹配,scanf函數(shù)終止。 格式標(biāo)識(shí)符以百分號(hào)(')開頭,使scanf從輸入流讀字符,并轉(zhuǎn)換字符到指定的類型值。轉(zhuǎn)換后的值保存在參數(shù)列表的argument中。百分號(hào)后面的字符不被認(rèn)為是一個(gè)格式標(biāo)識(shí)符,只作為一個(gè)普通字符。例如%匹配輸入流的一個(gè)百分號(hào)。格式字符串從左向右讀,不是格式標(biāo)識(shí)符的字符必須和輸入流的字符匹配。這些字符
31、從輸入流讀入,但不保存,如果輸入流的一個(gè)字符和格式字符串沖突,scanf終止。任何沖突的字符仍保留在輸入流中。在格式字符串中的第一個(gè)格式標(biāo)識(shí)符引用fmtstr后面的第一個(gè)參數(shù),并轉(zhuǎn)化輸入字符,用格式標(biāo)識(shí)符保存值。第二個(gè)格式標(biāo)識(shí)符訪問fmtstr后面的第二個(gè)參數(shù),等等。如果參數(shù)比格式標(biāo)識(shí)符多,多出的參數(shù)被忽略。如果沒有足夠的參數(shù)匹配格式標(biāo)識(shí)符,結(jié)果是不可預(yù)料的。輸入流中的值被輸入域調(diào)用,用空白字符隔開。在轉(zhuǎn)換輸入域時(shí),scanf遇到一個(gè)空白字符就結(jié)束一個(gè)參數(shù)的轉(zhuǎn)換,而且任何當(dāng)前格式標(biāo)識(shí)符不認(rèn)識(shí)的字符會(huì)結(jié)束一個(gè)域轉(zhuǎn)換。格式標(biāo)識(shí)符的格式:*widthb|h|ltype格式標(biāo)識(shí)符中的每個(gè)域可以是單個(gè)字
32、符或數(shù)字,用來(lái)指定一個(gè)特殊的格式選項(xiàng)。type域是單個(gè)字符,指定輸入字符是否解釋為一個(gè)字符、字符串或數(shù)字。本域可以是下表中的任何值。以星號(hào)(*)作為格式標(biāo)識(shí)符的第一個(gè)字符,會(huì)使輸入域被掃描但不保存。星號(hào)禁止和格式標(biāo)識(shí)符關(guān)聯(lián)。width域是一個(gè)非負(fù)數(shù),指定從輸入流讀入的最多字符數(shù)。從輸入流讀入的字符不超過width,并根據(jù)相應(yīng)的argument轉(zhuǎn)換。然而,如果一個(gè)空白字符或一個(gè)不認(rèn)識(shí)字符先遇到,則讀入的字符數(shù)小于widtho可選字符b,h和l直接放在類型字符前面,分別指定整數(shù)類型d,i,u,。和x的char,short或long版本。本函數(shù)指定執(zhí)行基于_getkey或putchar函數(shù)的操作。這
33、些函數(shù),作為標(biāo)準(zhǔn)庫(kù)提供,用8051的串口讀寫??蓪?duì)另1J的I/O設(shè)備定制函數(shù)??梢詡鬟f給scanf的字節(jié)數(shù)受8051存儲(chǔ)區(qū)的限制。SMALL模式或COMPAC做式最多為15字節(jié)。LARGE模式最多為40字節(jié)。返回:scanf函數(shù)返回成功轉(zhuǎn)換的輸入域的數(shù)目。如果有錯(cuò)誤則返回EOF(11)sscanf原型:intsscanf(char*buffer,constchar*fmtstr,argument);功能:sscanf函數(shù)從buffer讀字符串。參數(shù):輸入的數(shù)據(jù)保存在由argument根據(jù)格式字符串fmtstr指定的位置。每個(gè)argument必須是指向變量的指針,對(duì)應(yīng)定義在fmtstr的類型,控
34、制輸入數(shù)據(jù)的解釋。fmtstr參數(shù)由一個(gè)或多個(gè)空白字符、非空白字符和格式標(biāo)識(shí)符組成,如同scanf函數(shù)所定義。返回:sscanf函數(shù)返回成功轉(zhuǎn)換的輸入域的數(shù)目,如果出現(xiàn)錯(cuò)誤則返回EOF(12)puts原型:intputs(constchar*string);功能:puts函數(shù)用putchar函數(shù)寫string和換行符n到輸出流。本函數(shù)指定執(zhí)行基于putchar函數(shù)的操作。本函數(shù)作為標(biāo)準(zhǔn)庫(kù)提供,寫字符到8051的串口。用別的I/O可以定制函數(shù)。參數(shù):輸出的字符串。返回:如果出現(xiàn)錯(cuò)誤,puts函數(shù)返回EOF,如果沒有則返回0。五、字符測(cè)試<ctype.h>(1)isalpha原型:bi
35、tisalpha(charc);功能:isalpha函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)字母(A''Z',a''z')。返回:如果c是一個(gè)字母,isalpha函數(shù)返回1(真),否則返回0(假)。(2)isalnum原型:bitisalnum(charc);功能:isalnum函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)字母或數(shù)字字符(A''Z',a''z','0'9')。返回:如果c是一個(gè)字母或數(shù)字字符,isalnum函數(shù)返回1(真),否則返回0(假)。(3)iscntrl原型:bitiscnt
36、rl(charc);功能:iscntrl函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)控制字符(0x000x1F或0x7F)。返回:如果c是一個(gè)控制字符,iscntrl函數(shù)返回1(真),否則返回0(假)。(4)isdigit原型:bitisdigit(charc);功能:isdigit函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)十進(jìn)制數(shù)(0'9')。返回:如果c是一個(gè)十進(jìn)制數(shù),isdigit函數(shù)返回1(真),否則返回0(假)。(5)isgraph原型:bitisgraph(charc);功能:isgraph函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)可打印字符(0x210x7E,不包才空格)。返回:如果c是一個(gè)可打印字符
37、,isgraph函數(shù)返回1(真),否則返回0(假)。(6)isprint原型:bitisprint(charc);功能:isprint函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)可打印字符(0x200x7E)。返回:如果c是一個(gè)可打印字符,isprint函數(shù)返回1(真),否則返回0(假)。(7)ispunct原型:bitispunct(charc);功能:ispunct函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)標(biāo)點(diǎn)符號(hào)字符(!,.:;?”#$%&''()<>*+-=小A_)。返回:如果c是一個(gè)標(biāo)點(diǎn)符號(hào)字符,ispunct函數(shù)返回1(真),否則返回0(假)。(8)islower原型:b
38、itislower(charc);功能:islower函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)小寫字母字符(az')。返回:如果c是一個(gè)小寫字母字符,islower函數(shù)返回1(真),否則返回0(假)。(9)isupper原型:bitisupper(charc);功能:isupper函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)大寫字母字符(A'Z')。返回:如果c是一個(gè)大寫字母字符,isupper函數(shù)返回1(真),否則返回0(假)。(10)isspace原型:bitisspace(charc);功能:isspace函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)空白字符(0x090x0D或0x20)。返回:如果c
39、是一個(gè)空白字符,isspace函數(shù)返回1(真),否則返回0(假)。(11)isxdigit原型:bitisalnum(charc);功能:isalnum函數(shù)測(cè)試參數(shù)c,確定是否是一個(gè)十六進(jìn)制數(shù)(A''F',a''f','0'9')。返回:如果c是一個(gè)十六進(jìn)制數(shù),isalnum函數(shù)返回1(真),否則返回0(假)。(12)tolower原型:chartolower(charc);功能:tolower函數(shù)轉(zhuǎn)換c為一個(gè)小寫字符。如果c不是一個(gè)字母,tolower函數(shù)無(wú)效。(13)toupper原型:chartoupper(char
40、c);功能:toupper函數(shù)轉(zhuǎn)換c為一個(gè)大寫字符。如果c表示一個(gè)字母,toupper函數(shù)無(wú)效。參數(shù):返回:toupper宏返回c的大寫。(14)toint原型:chartoint(charc);功能:toint函數(shù)解釋c為十六進(jìn)制值。ASCII字符09'生成值09。ASCII字符A''F和a'f'生成值1015。如果c表示一個(gè)十六進(jìn)制數(shù),函數(shù)返回-1。返回:toint宏返回c的十六進(jìn)制ASCII值。(15)_tolower原型:#define_tolower(c)(c)-'A'+'a')功能:_tolower宏是在已知c
41、是一個(gè)大寫字符的情況下可用的lower的一個(gè)版本。返回:tolower宏返回c的小寫。(16)_toupper原型:#define_toupper(c)(c)-'a'+'A')功能:_toupper宏是在已知c是一個(gè)小寫字符的情況下可用的toupper的一個(gè)版本。返回:_toupper宏返回c的大寫。(17)toascii原型:#definetoascii(c)(c)&0x7F)功能:toascii宏轉(zhuǎn)換c為一個(gè)7位ASCII字符。宏只轉(zhuǎn)換變量c的低7位。返回:toascii宏返回c的7位ASCII字符。六、跳轉(zhuǎn)<setjmp.h>(1)se
42、tjmp原型:volatileintsetjmp(jmp_bufenv);功能:setjmp函數(shù)保存當(dāng)前CPU的狀態(tài)在env,該狀態(tài)可以調(diào)用longjmp函數(shù)來(lái)恢復(fù)。參數(shù):當(dāng)同時(shí)使用時(shí),setjmp和longjmp函數(shù)提供一種方法實(shí)行非局部跳轉(zhuǎn)。setjmp函數(shù)保存當(dāng)前指令地址和別的CPU寄存器。一個(gè)longjmp的并發(fā)調(diào)用恢復(fù)指令指針和寄存器,在setjmp調(diào)用后面恢復(fù)運(yùn)行。只有聲明了volatile屬性的局部變量和函數(shù)參數(shù)被恢復(fù)。返回:當(dāng)CPU的當(dāng)前狀態(tài)被復(fù)制到env,setjmp函數(shù)返回一個(gè)0。一個(gè)非零值表示執(zhí)行了longjmp函數(shù)來(lái)返回setjmp函數(shù)調(diào)用。在這種情況下,返回值是傳遞給
43、longjmp函數(shù)的值。(2)longjmp原型:volatilevoidlongjmp(jmp_bufenv,intretval);功能:longjmp函數(shù)恢復(fù)用setjmp函數(shù)保存在env的狀態(tài)。retval參數(shù)指定從setjmp函數(shù)調(diào)用返回值。longjmp和setjmp函數(shù)可以用來(lái)執(zhí)行非局部跳轉(zhuǎn),通常用來(lái)控制一個(gè)錯(cuò)誤恢復(fù)程序。只有用volatile屬性聲明的局部變量和函數(shù)參數(shù)被恢復(fù)。七、字符串操作<string.h>(1)strcat原型:char*strcat(char*s1,char*s2);功能:strcat函數(shù)連接或添加s2到s1,并用NULL字符終止s1。參數(shù):s
44、1目標(biāo)字符串,s2源字符串。返回:s1o(2)strncat原型:char*strncat(char*s1,char*s2,intlen);功能:strncat函數(shù)從s2添加最多l(xiāng)en個(gè)字符到s1,并用NULL結(jié)束。如果s2的長(zhǎng)度小于len,s2連帶NULL全部復(fù)制。參數(shù):s1目標(biāo)字符串,s2源字符串,len連接的最多字符數(shù)。返回:strncat函數(shù)返回s1。(3)strcmp原型:charstrcmp(char*s1,char*s2);功能:strcmp函數(shù)比較字串s1和s2的內(nèi)容,并返回一個(gè)值表示它們的關(guān)系。返回:若s1<s2返回負(fù)數(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,返回一個(gè)值表示它們的關(guān)系。si,s2為字串,len為比較的長(zhǎng)度。若si<s2返回負(fù)數(shù);若si=s2返回0;若si>s2返回正數(shù)。(5)strcpy原型:char*strcpy(char*s1,char*s2);功能:strcpy函數(shù)復(fù)制字符串s2到字符串si,并用NULL字符結(jié)束si。參數(shù):si目標(biāo)字符串,s2源字符串。s1。(6)strncpy原型:char*strncpy(char*dest,char*s2,intlen)
46、;功能:strncpy函數(shù)從字符串s2復(fù)制最多l(xiāng)en個(gè)字符到字符串si。si。(7)strlen原型:intstrlen(char*s);功能:strlen函數(shù)計(jì)算字符串s的字節(jié)數(shù),不包括NULL結(jié)束符。參數(shù):s要測(cè)試長(zhǎng)度的字串。返回:字符串s的長(zhǎng)度。(8)strchr原型:char*strchr(constchar*s,charc);功能:strchr函數(shù)搜索字符串s中第一個(gè)出現(xiàn)的c。s中的NULL字符終止搜索。參數(shù):s被搜索的字符串,c要查找的字符。返回:字符串s中指向c的指針,如沒有發(fā)現(xiàn)則返回一個(gè)NULL指針。(9)strops原型:intstrpos(constchar*s,charc
47、);功能:strpos函數(shù)查找字符串s中c的第一次出現(xiàn),包括s的NULL結(jié)束符。參數(shù):s被搜索的字符串,c要查找的字符。返回:s中和c匹配的字符的索引。如沒匹配則返回-1。s中第一個(gè)字符的索引是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中第一個(gè)字符的索引是0。(12)strcspn原型:intstrcspn(char*s,char*set);功能:在字符串s中查找字符串set中的任何字符。參數(shù):s源字串,set查找的字串。返回:strcspn函數(shù)返回s中和set匹配的第一個(gè)字符的索引。如果s的第一個(gè)字符和set中的一個(gè)字符匹配,返回0。如果s中沒有字符匹配,返回字符串的長(zhǎng)度。(13)strpbrk原型:char*strpbrk(char*s,char*set);功能:查找字符串s中第一個(gè)出現(xiàn)的set中的任何字符,不包括NULL結(jié)束符。參數(shù):s源字串,set查找的字串。返回:s匹配的字符的指針。如果s沒有字符和set匹配,返回一個(gè)NULL指針。(14)strrpbrk原型:char*strrpbrk(char*s,char*set);功能:查找字符串s中最后一個(gè)出現(xiàn)的set中的任何字符,不包括NULL結(jié)束符。返回:s最后匹配的字符的指針。如果s沒有字符和set匹配,返回一個(gè)NULL指針。(15)strspn原型:intstrspn(char*s,char*set);功能:查找字符串s中set沒有的字符。返回:strspn函數(shù)返回s第一個(gè)和set
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融機(jī)構(gòu)視頻會(huì)議系統(tǒng)方案
- 個(gè)人獨(dú)資企業(yè)稅務(wù)籌劃方案
- 餐飲行業(yè)作業(yè)管理制度標(biāo)準(zhǔn)
- 醫(yī)院藥房應(yīng)急管理方案
- 環(huán)保型布袋除塵設(shè)備選型方案
- 溫泉景觀設(shè)計(jì)與施工合同
- 化妝品行業(yè)美容顧問服務(wù)制度
- 非公立醫(yī)院理事會(huì)制度與行業(yè)標(biāo)準(zhǔn)制定
- 私人診所藥物調(diào)配制度
- 高校國(guó)慶節(jié)志愿服務(wù)活動(dòng)方案
- 出租車計(jì)價(jià)器系統(tǒng)設(shè)計(jì)摘要和目錄
- 醫(yī)院水電安裝施工方案
- 計(jì)算機(jī)網(wǎng)絡(luò)考試重點(diǎn)整理
- 分子生物學(xué)DNA重組與轉(zhuǎn)座
- 水泥攪拌樁機(jī)械進(jìn)場(chǎng)安裝驗(yàn)收記錄表
- 生命生態(tài)安全
- 高一物理的必修的一期中考試試卷解析告
- 人教PEP五年級(jí)上冊(cè)英語(yǔ)課件 Unit 4 Part B 第二課時(shí)
- 網(wǎng)絡(luò)通信類visio圖庫(kù)
- 四年級(jí)英語(yǔ)上冊(cè)Unit4第四課時(shí)教案人教PEP標(biāo)準(zhǔn)版
- 九大類危險(xiǎn)品英文解釋與圖標(biāo)
評(píng)論
0/150
提交評(píng)論