完整版Keilc51常用库函数汇总参考.docx

上传人:b****8 文档编号:10919193 上传时间:2023-02-23 格式:DOCX 页数:27 大小:24.68KB
下载 相关 举报
完整版Keilc51常用库函数汇总参考.docx_第1页
第1页 / 共27页
完整版Keilc51常用库函数汇总参考.docx_第2页
第2页 / 共27页
完整版Keilc51常用库函数汇总参考.docx_第3页
第3页 / 共27页
完整版Keilc51常用库函数汇总参考.docx_第4页
第4页 / 共27页
完整版Keilc51常用库函数汇总参考.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

完整版Keilc51常用库函数汇总参考.docx

《完整版Keilc51常用库函数汇总参考.docx》由会员分享,可在线阅读,更多相关《完整版Keilc51常用库函数汇总参考.docx(27页珍藏版)》请在冰豆网上搜索。

完整版Keilc51常用库函数汇总参考.docx

完整版Keilc51常用库函数汇总参考

Keilc51函数参考

一、数学函数〈math.h>

(1)cabs

原型:

charcabs(charval);

功能:

cabs函数取val的绝对值。

参数:

一字节数val.

返回:

cabs返回val的绝对值。

(2)abs

原型:

Intabs(intval);

功能:

求绝对值

参数:

val整型数

返回:

val的绝对值

(3)labs

原型:

longlabs(longval);

功能:

labs函数确定长整数val的绝对值.

返回:

val的绝对值。

(4)fabs

原型:

floatfabs(floatval);

功能:

fabs函数确定浮点数val的绝对值.

参数:

返回:

fabs返回val的绝对值。

(5)sqrt

原型:

floatsprt(floatx);

功能:

sqrt函数计算x的平方根。

返回:

sqrt函数返回x的正平方根。

(6)exp

原型:

floatexp(floatx);

功能:

exp函数计算自然对数中e的x次幂。

e≈2。

71828182845953581496,是无限循环小数。

返回:

ex的值.

(7)log

原型:

floatlog(floatval);

功能:

log函数计算浮点数val的自然对数。

自然对数基数为e。

返回:

val的浮点自然对数。

(8)log10

原型:

floatlog10(floatval);

功能:

logl0函数计算浮点数val的常用对数.常用对数为基数10。

返回:

val的浮点常用对数。

(9)sin

原型:

floatsin(floatx);

功能:

sin函数计算浮点数x的正弦值。

参数:

x必须在—65535~65535之间,或产生一个NaN错误。

返回:

sin函数返回x的正弦.

(10)cos

原型:

floatcos(floatx);

功能:

COS函数计算浮点数X的余弦.

参数:

X的值必须在-65535~65535之间,或产生一个NaN错误。

返回:

COS函数返回X的余弦。

(11)tan

原型:

floattan(floatx);

功能:

tan函数计算浮点数x的正切值.

参数:

x必须在—65535~65535之间,或错误值NaN.

返回:

tan函数返回x的正切。

(12)asin

原型:

floatasin(floatx);

功能:

求反正弦

参数:

浮点数x,取值必须在-1~1之间。

返回:

X的反正弦,值在-π/2~π/2之间。

(13)acos

原型:

floatacos(floatx);

功能:

求反余弦

参数:

浮点数x,取值必须在-1~1之间。

返回:

x的反余弦,值在0~π之间.

(14)atan

原型:

floatatan(floatx);

功能:

求反正切

参数:

浮点数x,取值必须在-1~1之间。

返回:

X的反正切,值在—π/2~π/2之间。

(15)sinh

原型:

floatsinh(floatx);

功能:

sinh函数计算浮点数X的双曲正弦。

参数:

x必须在—65535~65535之间,或产生一个NaN错误.

返回:

sinh函数返回x的双曲正弦。

(16)cosh

原型:

floatcosh(floatx);

功能:

cosh函数计算浮点数X的双曲余弦。

参数:

返回:

cosh函数返回X的双曲余弦。

(17)tanh

原型:

floattanh(floatx);

功能:

tanh函数计算浮点数x的双曲正切.

返回:

tanh函数返回x的双曲正切。

(18)atan2

原型:

floatatan2(floaty,floatx);

功能:

计算浮点数y/x的反正切。

参数:

浮点数y,浮点数x。

返回:

反正切值,值在-π~π之间.x和y的符号确定返回值的象限.

(19)ceil

原型:

floatceil(floatval)

功能:

ceil函数计算大于或等于val的最小整数值(收尾取整)。

参数:

要化为整数的数。

返回:

ceil函数返回不小于val的最小float整数值。

(20)floor

原型:

floatfloor(floatval);

功能:

取整.

返回:

floor函数返回不大于val的最大整数值。

(21)fmod

原型:

floatfmod(floatx,floaty);

功能:

取模。

返回:

x/y的浮点余数.

(22)modf

原型:

floatmodf(floatval,float*ip);

功能:

modf函数把浮点数val分成整数和小数部分。

返回:

modf函数返回带符号小数部分val。

整数部分保存在浮点数ip中。

(23)pow

原型:

floatpow(floatx,floaty);

功能:

pow函数计算x的y次幂。

返回:

pow函数返回值xy.如果x≠0和y=O,pow返回值1;如果x=0和y≤0,pow返回NaN.如果x

二、空操作,左右位移等内嵌代码〈intrins。

h>

(1)_nop_

原型:

void_nop_(void);

功能:

_nop_插入一个8051NOP空操作指令到程序,用来停顿1个CPU周期。

本程序是固有函数,代码要求内嵌而不是调用。

返回:

无.

(2)_testbit_

原型:

bit_testbit_(bitb);

功能:

_testbit_程序在生成的代码中用JBC指令来测试位b,并清零。

参数:

本程序只能用在直接寻址位变量,对任何类型的表达式无效。

固有函数,代码要求内嵌,而非调用。

返回:

_testbit_程序返回值b

(3)_cror_

原型:

unsignedchar_cror_(unsignedcharc,unsignedcharb);

功能:

_cror_程序字符c循环右移b位.固有函数,代码要求内嵌,而不是调用.参数:

返回:

右移的结果

(4)_iror_

原型:

unsignedint_iror_(unsignedinti,unsignedcharb);

功能:

_iror_程序将整数i循环右移b位。

固有函数,代码要求内嵌而不是被调用。

参数:

i右移的整数,b右移的次数。

返回:

_iror_程序返回右移后的值。

(5)_lror_

原型:

unsignedlong_lror_(unsignedlongl,unsignedcharb);

功能:

_lror_程序将长整数l循环右移b位.固有函数代码,要求内嵌而不是被调用。

参数:

l要右移的数,b要右移的位数.

返回:

返回右移后的值。

摘要:

#include〈intrins_h〉。

(6)_crol_

原型:

unsignedchar_crol_(unsignedcharc,unsignedcharb);

功能:

_crol_程序字符c循环左移b位。

固有函数,代码要求内嵌,而不是调用。

参数:

返回:

左移的结果

(7)_irol_

原型:

unsignedint_irol_(unsignedinti,unsignedcharb);

功能:

_irol_程序将整数i循环左移b位。

固有函数,代码要求内嵌而不是被调用。

参数:

i左移的整数,b左移的次数。

返回:

_irol_程序返回左移后的值。

(8)_lrol_

原型:

unsignedlong_lrol_(unsignedlongl,unsignedcharb);

功能:

_lrol_程序将长整数l循环左移b位。

固有函数,代码要求内嵌而不是被调用。

参数:

l要左移的数,b要左移的位数。

返回:

返回左移后的值。

(9)_chkfloat_

原型:

unsignedchar_chkfloat_(floatval);

功能:

检查浮点数的状态。

参数:

浮点型变量.

返回:

0,标准浮点数;1,浮点数0;2,正溢出;3,负溢出;4,NaN(不是一个数)错误状态。

(10)_push_

原型:

void_push_(unsignedchar_sfr);

功能:

将特殊功能寄存器_sfr压入堆栈。

(11)_pop_

原型:

void_pop_(unsignedchar_sfr);

功能:

将堆栈中的数据弹出到特殊功能寄存器_sfr.

三、字串转数字,随机数,存储池管理

(1)atof

原型:

floatatof(void*string);

功能:

将浮点数格式的字符串转换为浮点数。

如果string的第一个字符不能转换成数字,就停止处理。

参数:

格式为,[{+|-}]数字[。

数字][{e|E}[{+|—}]数字]。

如,—12。

345e+67

返回:

atof函数返回string的浮点值。

(2)atoi

原型:

intatoi(void*string);

功能:

atoi函数转换string为一个整数值。

string是一个字符序列,可以解释为一个整数。

如果string的第一个字符不能转换成数字,就停止处理。

参数:

atoi函数要求string有这样的格式:

[空格][{+|—}]数字,如"123456"。

返回:

atoi函数返回string的整数值。

(3)atol

原型:

longatol(void*string);

功能:

atol函数转换string为一个长整数值。

string是一个字符序列,可以解释为一个长整数。

如果string的第一个字符不能转换成数字,就停止处理。

参数:

atol函数要求string有这样的格式:

[空格][{+|-}]数字,如”1234567890"。

返回:

atol函数返回string的长整数值.

(4)rand

原型:

intrand(void);

功能:

rand函数产生一个0~32767之间的虚拟随机数。

返回:

rand函数返回一个虚拟随机数。

(5)srand

原型:

voidsrand(intseed);

功能:

srand函数设置rand函数所用的虚拟随机数发生器的起始值seed,随机数发生器对任何确定值seed产生相同的虚拟随机数序列。

返回:

无。

(6)strtod

原型:

unsignedlongstrtod(constchar*string,char**ptr);

功能:

strtod函数将一个浮点数格式的字符串string转换为一个浮点数.字符串开头的空白字符被忽略.

参数:

要求string有下面的格式:

[{+|—}]digits[.digits][{e|E}[{+|—}]digits]digits可能是一个或多个十进制数。

ptr的值设置指针到string中转换部分的第一个字符。

如果ptr是NULL,没有值和ptr关联。

如果不能转换,则prt就设为string的值,strtod返回0。

返回:

strtod函数返回由string生成的浮点数。

(7)strtol

原型:

longstrtol(constchar*string,char**ptr,unsignedcharbase);

功能:

strtol函数将一个数字字串string转换为一个long值。

参数:

输入string是一个字符序列,可以解释为一个整数。

字符串开头的空白字符被忽略,符号可选。

要求string有下面的格式:

[whitespace][{+|—}]digitsdigits可能是一个或多个十进制数。

如果base是零,数值应该有一个十进制常数、八进制常数或十六进制常数的格式。

数值的基数从格式推出。

如果base在2~36之间,数值必须是一个字母或数字的非零序列,表示指定基数的一个整数。

字母a~z(或A~Z)分别表示值10~36。

只有小于base的字母表示的值是允许的。

如果base是16,数值可能以0x或0X开头,0x或0x被忽略。

prt的值设置指针指向string中转换部分的第一个字符。

如果prt是NULL,没有值和ptr关联。

如果不能转换,prt设置为string的值,strtol返回0.

返回:

strtol函数返回string生成的整数值。

如溢出则返回LONG_MIN或LONG_MAX.

(8)strtoul

原型:

unsignedlongstrtoul(constchar*string,char**ptr,unsignedcharbase);

功能:

strtoul函数转换string为一个unsignedlong值。

参数:

与strtol函数类似.

返回:

strtoul函数返回string生成的整数值.如溢出则返回ULONG_MAX。

(9)init_mempool

原型:

voidinti_mempool(voidxdata*p,unsignedintsize);

功能:

init_mempool函数初始化存储管理程序,提供存储池的开始地址和大小。

本函数必须在任何其他的存储管理函数(calloc,free,malloc,realloc)被调用前设置存储池,只在程序的开头调用一次。

可以修改源程序以适合硬件环境.

参数:

p参数指向一个xdata的存储区,用calloc,free,malloc和realloc库函数管理。

size参数指定存储池所用的字节数。

返回:

无。

(10)malloc

原型:

voidxdata*malloc(unsignedintsize);

功能:

malloc函数从存储池分配size字节的存储块。

返回:

malloc返回一个指向所分配的存储块的指针,如果没有足够的空间,则返回一个NULL指针。

(11)free

原型:

voidfree(voidxdata*p);

功能:

free函数返回一个存储块到存储池。

p参数指向用calloc、malloc或realloc函数分配的存储块.一旦块返回到存储就可被再分配。

如果p是一个NULL指针,被忽略.本程序的源代码在\KEIL\C51\LIB目录中,可以修改源程序,根据硬件来定制本程序。

参数:

返回:

无.

(12)realloc

原型:

voidxdata*realloc(voidxdata*p,unsignedintsize);

功能:

realloc函数改变已分配的存储块的大小。

本程序的源代码在目录KEIL\C5I\LIB中,可以根据硬件环境定制本函数。

参数:

P参数指向己分配块,size参数指定新块的大小。

原块的内容复制到新块,新块中的任何其他区,如果是一个更大的块不初始化。

返回:

realloc返回一个指向新块的指针.如果存储池没有足够的存储区,返回一个NULL指针,存储块不受影响。

(13)calloc

原型:

voidxdata*calloc(unsignedintnum,unsignedintlen);

功能:

calloc函数从一个数组分配num个元素的存储区。

每个元素占用len字节,并清0.字节总数为num*len。

在LIB目录提供程序的源代码。

可以修改源程序,为硬件定制本函数.

参数:

num为元素数目,len为每个元素的长度。

返回:

calloc函数返回一个指针,指向分配的存储区,如果不能分配,则返回一个NULL指针。

四、流输入输出〈stdio。

h>

(1)_getkey

原型:

char_getkey(void);

功能:

_getkey函数等待从串口接收字符。

_getkey和putchar函数的源代码可以修改,提供针对硬件的字符级的I/O。

返回:

接收到的字符

(2)getchar

原型:

chargetchar(void);

功能:

getchar函数用_getkey函数从输入流读一个字符。

所读的字符用putchar函数显示.本函数基于_getkey或putchar函数的操作。

这些函数,在标准库中提供,用8051的串口读和写字符。

定制函数可以用别的I/O设备。

返回:

所读的字符。

(3)ungetchar

原型:

charungetchar(charc);

功能:

ungetchar函数把字符c放回到输入流。

子程序被getchar和别的返回c的流输入函数调用。

getchar在调用时只能传递一个字符给ungetehar。

参数:

返回:

如果成功,ungetchar函数返回字符c.如果调用者在读输入流时调用ungetchar多次,返回EOF表示一个错误条件.

(4)putchar

原型:

charputchr(charc);

功能:

putchar函数用8051的串口输出字符c。

本程序指定执行,功能可能有变。

因提供了_getkey和putchar函数的源程序,可以根据任何硬件环境修改以提供字符级的I/O.

参数:

返回:

putchar函数返回输出的字符c.

(5)printf

原型:

intprintf(constchar*fmtstr[,arguments]…);

功能:

printf函数格式化一系列的字符串和数值,生成一个字符串用putchar写到输出流。

参数:

fmtstr参数是一个格式化字符串,可能是字符、转义系列和格式标识符。

普通的字符和转义系列按说明的顺序复制到流。

格式标识符通常以百分号(%)开头,要求在函数调用中包含附加的参数Arguments。

格式字符串从左向右读。

第一个格式标识符使用fmtstr后的第一个参数,用格式标识符转换和输出.第二个格式标识符访问fmtstr后的第二个参数.如果参数比格式标识符多,多出的参数被忽略.如果参数不够,结果是不可预料的。

格式标识符用下面的格式:

%[flags][width][。

precision][{b|B|l|L}]type格式标识符中的每个域可以是一个字符或数字type域是一个字符,指定参数是否解释为一个字符、字符串、数字或指针。

如下表所示:

可选的字符b或B和l和L可直接放在类型字符前,分别指定整数类型d、i、u、o、x和X的char或long版本.flags域是单个字符,用来对齐、输出和打印+/-号、空白、小数点、八进制和十六进制的前缀。

如下表所示:

width域是一个非负数字,指定显示的最小字符数。

如果输出值的字符数小于width,空白会加到左边或右边(当指定了一个标记)以达到最小的宽度。

如果width用一个’0'作前缀,则填充的是零而不是空白。

width域不会截短一个域。

如果输出值的长度超过指定宽度,则输出所有的字符.width域可能是星号(*),在这种情况下,参数列表的一个int参数提供宽度值。

如果参数使用的是unsignedchar,在星号标识符前指定一个’b’.precision域是非负数字,指定显示的字符数、小数位数或有效位.precison域可能使输出值切断或舍入.precision域可能是星号(*),在这种情况,参数列表的一个int参数提供宽度值。

如果参数使用的是unsignedchar,在星号标识符前指定一个’b’。

本函数指定执行基于putchar函数的操作。

本函数作为标准库提供,用805l的串口写字符,用别的I/O设备可以定制函数。

必须确保参数类型和指定的格式匹配。

可用类型映射确保正确的类型传递到printf。

可传递给printf的总的字节数受到8051的存储区的限制。

SMALL模式和COMPACT模式最多15字节,LARGE模式最多40字节。

返回:

printf函数返回实际写到输出流的字符数。

(6)sprintf

原型:

intsprintf(char*buffer,constchar*fmtstr[,arguments]…);

功能:

sprintf函数格式化一系列的字符串和数值,并保存结果字符串在bufferfintstr。

参数:

参数是一个格式字符串,和printf函数指定的要求相同。

返回:

sprintf函数返回实际写到buffer的字符数.

(7)vprintf

原型:

voidvprintf(constchar*fmtstr,char*argptr);

功能:

vprintf函数格式化一系列字符串和数字值,并建立一个用puschar函数写到输出流的字符串,函数类似于printf的副本,但使用参数列表的指针,而不是一个参数列表。

本函数是指定执行的,基于putchar函数的操作.本函数作为标准库提供,用8051的串口写字符。

别的I/O设备可以定制函数。

参数:

fmtstr参数是一个指向一个格式字符串的指针,和printf函数的fmtstr参数有相同的形式和功能。

argptr参数指向一系列参数,根据格式中指定的对应格式转换和输出.

返回:

vprintf函数返回实际写到输出流的字符数。

(8)vsprimf

原型:

voidvsprintf(char*buffer,constchar*fmtstr,char*argptr);

功能:

vsprintf函数格式化一系列字符串和数字值,并保存字符串在Buffer中.函数类似于sprintf的副本,但使用参数列表的指针,而不是一个参数列表。

参数:

fmtstr参数是一个指向一个格式字符串的指针,和printf函数的fmtstr参数有相同的形式和功能。

argptr参数指向一系列参数,根据格式中指定的对应格式转换和输出。

返回:

vsprintf函数返回实际写到输出流的字符数.

(9)gets

原型:

char*gets(char*string,intlen);

功能:

gets函数调用getchar函数读一行字符到string.这行包括所有的字符和换行符('\n')。

在string中换行符被一个NULL字符(’\n’)替代。

len参数指定可读的最多字符数.如果长度超过len,gets函数用NULL字符终止string并返回.本函数指定执行基于_getkey或putchar函数的操作。

这些函数,在标准库中提供,用8051的串口读写。

对别的I/O设备可以定制。

参数:

string要读的字符串,len最多字符数.

返回:

gets函数返回string

(10)scanf

原型:

intscanf(sonstchar*fmtstr[,argument]…);

功能:

scanf函数用getchar程序读数据。

输入的数据保存在由argument根据格式字符串fmtstr指定的位置。

参数:

每个argument必须是一个指针,指向一个变量,对应fmtstr定义的类型,fmtstr控制解释输入的数据,fmtstr参数由一个或单个空白字符、非空白字符和下面定义的格式标识符组成。

·空白字符,空白(’’),制表(’\t’)或换行('\n'),使scanf跳过输入流中的空白字符。

格式字符串中的单个的空白字符匹配输入流的0或多个空白字符。

·非空白字符,除了百分号(’%'),使scanf从输入流读但不保存一个匹配字符。

如果输入流的下一个字符和指定的非空白字符不匹配,scanf函数终止.

·格式标识符以百分号(’%')开头,使scanf从输入流读字符,并转换字符到指定的类型值。

转换后的值保存在参数列表的argument中.百分号后面的字符不被认为是一个格式标识符,只作为一个普通字符.例如%%匹配输入流的一个百分号。

格式字符串从左向右读,不是格式标识符的字符必须和输入流的字符匹配。

这些字符从输入流读入,但不保存,如果输入流的一个字符和格式字符串冲突,scanf终止。

任何冲突的字符仍保留在输入流中。

在格式字符串中的第一个格式标识符引用fmtstr后面的第一个参数,并转化输入字符,用格式标识符保存值。

第二个格式标识符访问fmtstr后面的第二个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1