




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Keilc51函數(shù)參考、數(shù)學(xué)函數(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ù)確定浮點(diǎn)數(shù)val的絕對值。參數(shù):返回:fabs返回val的絕對值。(5)sqrt原型:flo
2、atsprt(floatx);功能:sqrt函數(shù)計(jì)算x的平方根。返回:sqrt函數(shù)返回x的正平方根。(6)exp原型:floatexp(floatx);功能:exp函數(shù)計(jì)算自然對數(shù)中e的x次哥。e2.71828182845953581496,是無限循環(huán)小數(shù)。返回:ex的值。(7)log原型:floatlog(floatval);功能:log函數(shù)計(jì)算浮點(diǎn)數(shù)val的自然對數(shù)。自然對數(shù)基數(shù)為e。返回:val的浮點(diǎn)自然對數(shù)。(8)log10原型:floatlog10(floatval);功能:logl0函數(shù)計(jì)算浮點(diǎn)數(shù)val的常用對數(shù)。常用對數(shù)為基數(shù)10。返回:val的浮點(diǎn)常用對數(shù)。(9)sin原型:f
3、loatsln(floatx);功能:sin函數(shù)計(jì)算浮點(diǎn)數(shù)x的正弦值。參數(shù):x必須在-6553565535之間,或產(chǎn)生一個NaN錯誤。返回:sin函數(shù)返回x的正弦。(10)cos原型:floatcos(floatx);功能:COS函數(shù)計(jì)算浮點(diǎn)數(shù)X的余弦。X的值必須在-6553565535之間,或產(chǎn)生一個NaN錯誤。COS函數(shù)返回X的余弦。(11)tan原型:floattan(floatx);功能:tan函數(shù)計(jì)算浮點(diǎn)數(shù)x的正切值。x必須在-6553565535之間,或錯誤值NaN。tan函數(shù)返回x的正切。(12)asinfloatasin(floatx);功能:求反正弦數(shù)回參返浮點(diǎn)數(shù)x,取值必須
4、在-11之間。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)生一個NaN錯誤。返回: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的符號確定返回值的象限。(19)ceil原型:floatceil(floatval)功能:ceil函數(shù)計(jì)算大于或等于val的最小整數(shù)值(收尾取整)。參數(shù):要化為整數(shù)的數(shù)。返回:ceil函數(shù)返回不小于val的最小float整數(shù)值。(20)fl
6、oor原型: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ù)返回帶符號小數(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=
7、0和y<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ù):本程序只能用在直接尋址位變量,對任何類型的表達(dá)式無效。固有函數(shù),代碼要求內(nèi)嵌,而非調(diào)用。返回:_testbit_程序返回值b(3)_cror_unsignedchar_cror
8、_(unsignedcharc,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)嵌而不
9、是被調(diào)用。參數(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程序返回左移后的值
10、。(8)_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);功能:檢查浮點(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(不是一個數(shù))錯誤狀O(10)_push_原型:void_push_(unsignedchar_sfr);功能:將特殊功能寄存
11、器_sfr壓入堆棧。(11)_pop_原型:void_pop_(unsignedchar_sfr);功能:將堆棧中的數(shù)據(jù)彈出到特殊功能寄存器_sfr。三、字串轉(zhuǎn)數(shù)字,隨機(jī)數(shù),存儲池管理<stdlib.h>(1)atof原型:floatatof(void*string);功能:將浮點(diǎn)數(shù)格式的字符串轉(zhuǎn)換為浮點(diǎn)數(shù)。如果string的第一個字符不能轉(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為一個整
12、數(shù)值。string是一個字符序列,可以解釋為一個整數(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ù)返回stri
13、ng的長整數(shù)值。(4)rand原型:intrand(void);功能:rand函數(shù)產(chǎn)生一個032767之間的虛擬隨機(jī)數(shù)。返回:rand函數(shù)返回一個虛擬隨機(jī)數(shù)。(5)srand原型:voidsrand(intseed);功能:srand函數(shù)設(shè)置rand函數(shù)所用的虛擬隨機(jī)數(shù)發(fā)生器的起始值seed,隨機(jī)數(shù)發(fā)生器對任何確定值seed產(chǎn)生相同的虛擬隨機(jī)數(shù)序列。返回:無。(6)strtod原型:unsignedlongstrtod(constchar*string,char*ptr);功能:strtod函數(shù)將一個浮點(diǎn)數(shù)格式的字符串string轉(zhuǎn)換為一個浮點(diǎn)數(shù)。字符串開頭的空白字符被忽略。參數(shù):要求stri
14、ng有下面的格式:個十進(jìn)制數(shù)。ptr的值設(shè)置指針到值和ptr關(guān)聯(lián)。如果不能轉(zhuǎn)換,則+-digits.digitse|E+|-digitsdigits可能是一個或多string中轉(zhuǎn)換部分的第一個字符。如果ptr是NULL沒有prt就設(shè)為string的值,strtod返回0。返回:strtod函數(shù)返回由string生成的浮點(diǎn)數(shù)。(7)strtol原型:longstrtol(constchar*string,char*ptr,unsignedcharbase);功能:strtol函數(shù)將一個數(shù)字字串string轉(zhuǎn)換為一個long值。參數(shù):輸入string是一個字符序列,可以解釋為一個整數(shù)。字符串開頭的
15、空白字符被忽略,符號可選。要求string有下面的格式:whitespace+|-digitsdigits可能是一個或多個十進(jìn)制數(shù)。如果base是零,數(shù)值應(yīng)該有一個十進(jìn)制常數(shù)、八進(jìn)制常數(shù)或十六進(jìn)制常數(shù)的格式。數(shù)值的基數(shù)從格式推出。如果base在236之間,數(shù)值必須是一個字母或數(shù)字的非零序列,表示指定基數(shù)的一個整數(shù)。字母az(或AZ)分別表示值1036。只有小于base的字母表示的值是允許的。如果base是16,數(shù)值可能以0x或0X開頭,0x或0x被忽略。prt的值設(shè)置指針指向string中轉(zhuǎn)換部分的第一個字符。如果prt是NULL.,沒有值和ptr關(guān)聯(lián)。如果不能轉(zhuǎn)換,prt設(shè)置為string的
16、值,strtol返回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);功能:
17、init_mempool函數(shù)初始化存儲管理程序,提供存儲池的開始地址和大小。本函數(shù)必須在任何其他的存儲管理函數(shù)(calloc,free,malloc,realloc)被調(diào)用前設(shè)置存儲池,只在程序的開頭調(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中,可以
19、根據(jù)硬件環(huán)境定制本函數(shù)。參數(shù):P參數(shù)指向己分配塊,size參數(shù)指定新塊的大小。原塊的內(nèi)容復(fù)制到新塊,新塊中的任何其他區(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為元素?cái)?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ù),在標(biāo)準(zhǔn)庫中提供,用8051的串口
21、讀和寫字符。定制函數(shù)可以用別的I/O設(shè)備。返回:所讀的字符。(3)ungetchar原型:charungetchar(charc);功能:ungetchar函數(shù)把字符c放回到輸入流。子程序被getchar和另U的返回c的流輸入函數(shù)調(diào)用。getchar在調(diào)用時(shí)只能傳遞一個字符給ungetehar。參數(shù):返回:如果成功,ungetchar函數(shù)返回字符c。如果調(diào)用者在讀輸入流時(shí)調(diào)用ungetchar多次,返回EOF表示一個錯誤條件。(4)putchar原型:charputchr(charc);功能:putchar函數(shù)用8051的串口輸出字符c。本程序指定執(zhí)行,功能可能有變。因提供了_getkey和p
22、utchar函數(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)義系列和格式標(biāo)識符。普通的字符和轉(zhuǎn)義系列按說明的順序復(fù)制到流。格式標(biāo)識符通常以百分號()開頭,要求在函數(shù)調(diào)用中包含附加的參數(shù)Argumentso格式字符串從左向右讀。第一個格式標(biāo)識符使用fmtstr后的第一個參數(shù),用格式標(biāo)識符轉(zhuǎn)換和
23、輸出。第二個格式標(biāo)識符訪問fmtstr后的第二個參數(shù)。如果參數(shù)比格式標(biāo)識符多,多出的參數(shù)被忽略。如果參數(shù)不夠,結(jié)果是不可預(yù)料的。格式標(biāo)識符用下面的格式:%flagswidth.precisionb|B|l|Ltype格式標(biāo)識符中的每個域可以是一個字符或數(shù)字type域是一個字符,指定參數(shù)是否解釋為一個字符、字符串、數(shù)字或指針。如下表所示:可選的字符b或B和l和L可直接放在類型字符前,分別指定整數(shù)類型d、i、u、o、x和X的char或10ng版本。flags域是單個字符,用來對齊、輸出和打印+/-號、空白、小數(shù)點(diǎn)、八進(jìn)制和十六進(jìn)制的前綴。如下表所示:width域是一個非負(fù)數(shù)字,指定顯示的最小字符數(shù)
24、。如果輸出值的字符數(shù)小于width,空白會加到左邊或右邊(當(dāng)指定了一個標(biāo)記)以達(dá)到最小的寬度。如果width用一個0'作前綴,則填充的是零而不是空白。width域不會截短一個域。如果輸出值的長度超過指定寬度,則輸出所有的字符。width域可能是星號(*),在這種情況下,參數(shù)列表的一個int參數(shù)提供寬度值。如果參數(shù)使用的是unsignedchar,在星號標(biāo)識符前指定一個b'。precision域是非負(fù)數(shù)字,指定顯示的字符數(shù)、小數(shù)位數(shù)或有效位。precison域可能使輸出值切斷或舍入。precision域可能是星號(*),在這種情況,參數(shù)列表的一個int參數(shù)提供寬度值。如果參數(shù)使用
25、的是unsignedchar,在星號標(biāo)識符前指定一個b'。本函數(shù)指定執(zhí)行基于putchar函數(shù)的操作。本函數(shù)作為標(biāo)準(zhǔn)庫提供,用8051的串口寫字符,用別的I/O設(shè)備可以定制函數(shù)。必須確保參數(shù)類型和指定的格式匹配??捎妙愋陀成浯_保正確的類型傳遞到printf??蓚鬟f給printf的總的字節(jié)數(shù)受到8051的存儲區(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ù)是一個格式字符串,和printf函數(shù)指定的要求相同。返回:sprintf函數(shù)返回實(shí)際寫到buffer的字符數(shù)。(7)vprintf原型:voidvprintf(constchar*fmtstr,char*argptr);功能:vprintf函數(shù)格式化一系列字符串和數(shù)字值,并建立一個用puschar函數(shù)寫到輸出流的字符串,函數(shù)類似于printf的副本,但使用參數(shù)列表的指針,而不是一個參數(shù)列表。本函數(shù)是指定執(zhí)行的,基于putchar函數(shù)的操作。本函數(shù)作為標(biāo)準(zhǔn)庫提供,用8051的串口寫字符。別的I/O設(shè)備可以定制函數(shù)
27、。參數(shù):fmtstr參數(shù)是一個指向一個格式字符串的指針,和printf函數(shù)的fmtstr參數(shù)有相同的形式和功能。argptr參數(shù)指向一系列參數(shù),根據(jù)格式中指定的對應(yīng)格式轉(zhuǎn)換和輸出。返回:vprintf函數(shù)返回實(shí)際寫到輸出流的字符數(shù)。(8)vsprimf原型:voidvsprintf(char*buffer,constchar*fmtstr,char*argptr);功能:vsprintf函數(shù)格式化一系列字符串和數(shù)字值,并保存字符串在Buffer中。函數(shù)類似于sprintf的副本,但使用參數(shù)列表的指針,而不是一個參數(shù)列表。參數(shù):fmtstr參數(shù)是一個指向一個格式字符串的指針,和printf函數(shù)的
28、fmtstr參數(shù)有相同的形式和功能。argptr參數(shù)指向一系列參數(shù),根據(jù)格式中指定的對應(yīng)格式轉(zhuǎn)換和輸出。返回:vsprintf函數(shù)返回實(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、,在標(biāo)準(zhǔn)庫中提供,用8051的串口讀寫。對別的I/O設(shè)備可以定制。參數(shù):string要讀的字符串,len最多字符數(shù)。返回:gets函數(shù)返回string原型:intscanf(sonstchar*fmtstr,argument);功能:scanf函數(shù)用getchar程序讀數(shù)據(jù)。輸入的數(shù)據(jù)保存在由argument根據(jù)格式字符串fmtstr指定的位置。參數(shù):每個argument必須是一個指針,指向一個變量,對應(yīng)fmtstr定義的類型,fmtstr控制解釋輸入的數(shù)據(jù),fmtstr參數(shù)由一個或單個空白字符、非空白字符和下面定義的格式標(biāo)識符組成??瞻鬃址瞻?''),制表('t&
30、#39;)或換行('n'),使scanf跳過輸入流中的空白字符。格式字符串中的單個的空白字符匹配輸入流的0或多個空白字符。非空白字符,除了百分號(''),使scanf從輸入流讀但不保存一個匹配字符。如果輸入流的下一個字符和指定的非空白字符不匹配,scanf函數(shù)終止。格式標(biāo)識符以百分號(')開頭,使scanf從輸入流讀字符,并轉(zhuǎn)換字符到指定的類型值。轉(zhuǎn)換后的值保存在參數(shù)列表的argument中。百分號后面的字符不被認(rèn)為是一個格式標(biāo)識符,只作為一個普通字符。例如%匹配輸入流的一個百分號。格式字符串從左向右讀,不是格式標(biāo)識符的字符必須和輸入流的字符匹配。這些字
31、符從輸入流讀入,但不保存,如果輸入流的一個字符和格式字符串沖突,scanf終止。任何沖突的字符仍保留在輸入流中。在格式字符串中的第一個格式標(biāo)識符引用fmtstr后面的第一個參數(shù),并轉(zhuǎn)化輸入字符,用格式標(biāo)識符保存值。第二個格式標(biāo)識符訪問fmtstr后面的第二個參數(shù),等等。如果參數(shù)比格式標(biāo)識符多,多出的參數(shù)被忽略。如果沒有足夠的參數(shù)匹配格式標(biāo)識符,結(jié)果是不可預(yù)料的。輸入流中的值被輸入域調(diào)用,用空白字符隔開。在轉(zhuǎn)換輸入域時(shí),scanf遇到一個空白字符就結(jié)束一個參數(shù)的轉(zhuǎn)換,而且任何當(dāng)前格式標(biāo)識符不認(rèn)識的字符會結(jié)束一個域轉(zhuǎn)換。格式標(biāo)識符的格式:*widthb|h|ltype格式標(biāo)識符中的每個域可以是單個
32、字符或數(shù)字,用來指定一個特殊的格式選項(xiàng)。type域是單個字符,指定輸入字符是否解釋為一個字符、字符串或數(shù)字。本域可以是下表中的任何值。以星號(*)作為格式標(biāo)識符的第一個字符,會使輸入域被掃描但不保存。星號禁止和格式標(biāo)識符關(guān)聯(lián)。width域是一個非負(fù)數(shù),指定從輸入流讀入的最多字符數(shù)。從輸入流讀入的字符不超過width,并根據(jù)相應(yīng)的argument轉(zhuǎn)換。然而,如果一個空白字符或一個不認(rèn)識字符先遇到,則讀入的字符數(shù)小于widtho可選字符b,h和l直接放在類型字符前面,分別指定整數(shù)類型d,i,u,。和x的char,short或long版本。本函數(shù)指定執(zhí)行基于_getkey或putchar函數(shù)的操作。
33、這些函數(shù),作為標(biāo)準(zhǔn)庫提供,用8051的串口讀寫??蓪e的I/O設(shè)備定制函數(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必須是指向變量的指針,對應(yīng)定義在fmtstr的類型,控制
34、輸入數(shù)據(jù)的解釋。fmtstr參數(shù)由一個或多個空白字符、非空白字符和格式標(biāo)識符組成,如同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ù)作為標(biāo)準(zhǔn)庫提供,寫字符到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,確定是否是一個十進(jìn)制數(shù)(0'9')。返回:如果c是一個十進(jìn)制數(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,確定是否是一個標(biāo)點(diǎn)符號字符(!,.:;?”#$%&''()<>*+-=/|人_)。返回:如果c是一個標(biāo)點(diǎn)符號字符,ispunct函數(shù)返回1(真),否則返回0(假)。原型:bitislower
38、(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是一個空白字符,i
39、sspace函數(shù)返回1(真),否則返回0(假)。(11)isxdigit原型:bitisalnum(charc);功能:isalnum函數(shù)測試參數(shù)c,確定是否是一個十六進(jìn)制數(shù)(A''F',a''f','0'9')。返回:如果c是一個十六進(jìn)制數(shù),isalnum函數(shù)返回1(真),否則返回0(假)。(12)tolower原型:chartolower(charc);功能:tolower函數(shù)轉(zhuǎn)換c為一個小寫字符。如果c不是一個字母,tolower函數(shù)無效。(13)toupper原型:chartoupper(charc);功能:tou
40、pper函數(shù)轉(zhuǎn)換c為一個大寫字符。如果c表示一個字母,toupper函數(shù)無效。參數(shù):返回:toupper宏返回c的大寫。(14)toint原型:chartoint(charc);功能:toint函數(shù)解釋c為十六進(jìn)制值。ASCII字符09'生成值09。ASCII字符A''F和a'f'生成值1015。如果c表示一個十六進(jìn)制數(shù),函數(shù)返回-1。返回:toint宏返回c的十六進(jìn)制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)setjmp原型:vo
42、latileintsetjmp(jmp_bufenv);功能:setjmp函數(shù)保存當(dāng)前CPU的狀態(tài)在env,該狀態(tài)可以調(diào)用longjmp函數(shù)來恢復(fù)。參數(shù):當(dāng)同時(shí)使用時(shí),setjmp和longjmp函數(shù)提供一種方法實(shí)行非局部跳轉(zhuǎn)。setjmp函數(shù)保存當(dāng)前指令地址和別的CPU寄存器。一個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ù)返回一個0。一個非零值表示執(zhí)行了longjmp函數(shù)來返回setjmp函數(shù)調(diào)用。在這種情況下,返回值是傳遞給longjmp函數(shù)
43、的值。(2)longjmp原型:volatilevoidlongjmp(jmp_bufenv,intretval);功能:longjmp函數(shù)恢復(fù)用setjmp函數(shù)保存在env的狀態(tài)。retval參數(shù)指定從setjmp函數(shù)調(diào)用返回值。longjmp和setjmp函數(shù)可以用來執(zhí)行非局部跳轉(zhuǎn),通常用來控制一個錯誤恢復(fù)程序。只有用volatile屬性聲明的局部變量和函數(shù)參數(shù)被恢復(fù)。七、字符串操作<string.h>(1)strcat原型:char*strcat(char*s1,char*s2);功能:strcat函數(shù)連接或添加s2到s1,并用NULL字符終止s1。參數(shù):s1目標(biāo)字符串,s2
44、源字符串。返回:s1o(2)strncat原型:char*strncat(char*s1,char*s2,intlen);功能:strncat函數(shù)從s2添加最多l(xiāng)en個字符到s1,并用NULL結(jié)束。如果s2的長度小于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)容,并返回一個值表示它們的關(guān)系。返回:若s1<s2返回負(fù)數(shù);若s1=s2返回0;若s1>s2返回正數(shù)。型能數(shù)回原功參返c
45、har*strncmp(char*si,char*s2,intlen);strncmp函數(shù)比較si的前l(fā)en字節(jié)和s2,返回一個值表示它們的關(guān)系。si,s2為字串,len為比較的長度。若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);功能:strncpy函數(shù)從字符串s2
46、復(fù)制最多l(xiāng)en個字符到字符串si。si。(7)strlen原型:intstrlen(char*s);功能:strlen函數(shù)計(jì)算字符串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);功能:strpos函數(shù)查找字符串s
47、中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é)束符。功能:strrpos函數(shù)查找字符串s中c的
48、最后一次出現(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第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版九年級下冊英語教學(xué)計(jì)劃(及進(jìn)度表)
- 2025年黨政領(lǐng)導(dǎo)干部黨章黨規(guī)黨紀(jì)黨史知識培訓(xùn)考試題庫及答案(共210題)
- 銷售試用期工作表現(xiàn)評語
- 劇本編劇合作協(xié)議
- 《移動網(wǎng)絡(luò)規(guī)劃和優(yōu)化》課件-第二章
- 地鐵站裝修資助協(xié)議
- 新建鐵路M剛構(gòu)連續(xù)梁 投標(biāo)方案(技術(shù)方案)
- 農(nóng)業(yè)科技項(xiàng)目實(shí)施效果評估方案
- 雨水收集的系統(tǒng)
- 公司員工培訓(xùn)資料
- CCRW程序簡介匯總課件
- 中醫(yī)拔罐技術(shù)課件
- 西藏自治區(qū)山南市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 東南大學(xué)2016年MBA政治理論考試思考題(答案)
- 2022年菏澤市鄆城縣中醫(yī)院醫(yī)護(hù)人員招聘考試筆試題庫及答案解析
- 青樓韻語嫖經(jīng)、明代嫖經(jīng)全文-古籍
- 中小學(xué)教師職業(yè)道德規(guī)范
- 無創(chuàng)呼吸機(jī)臨床應(yīng)用護(hù)士操作手冊
- 7S管理標(biāo)準(zhǔn)-目視化管理標(biāo)準(zhǔn)
- 等截面雙鉸圓拱內(nèi)力計(jì)算
- ABB變頻器培訓(xùn)資料
評論
0/150
提交評論