keil5 c语言函数库,C语言中KeilC51库函数大全.docx

本文详细介绍了C51编程中的本征和非本征库函数,强调了它们在提高代码效率和简化程序结构上的作用。重点讨论了C51的9个本征函数,如循环移位函数和NOP指令,并列举了动态内存分配、缓冲区处理和输入输出流等关键库函数。此外,还提到了一些标准库函数,如字符处理和输入输出操作。对于C51开发者来说,理解并熟练运用这些库函数能够提升程序的性能和可维护性。
摘要由CSDN通过智能技术生成

C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函

数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51

的库函数系统。

第 一 节本 征 库 函 数 (i n t r i n si c ro u t in es ) 和 非 本 征 证 库 函 数

C51 提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL

和 LCALL语句来实现, 这样就大大提供了函数访问的效率, 而非本征函数则必须由 ACALL及 LCALL调用。

C51 的本征库函数只有9 个,数目虽少,但都非常有用,列如下:

_crol_,_cror_:将 char 型变量循环向左 (右)移动指定位数后返回

_iror_,_irol_ :将 int 型变量循环向左 (右 )移动指定位数后返回

_lrol_,_lror_ :将 long 型变量循环向左 (右 )移动指定位数后返回

_nop_:相当于插入 NOP

_testbit_ :相当于 JBC bitvar测试该位变量并跳转同时清除。

_chkfloat_:测试并返回源点数状态。

使用时,必须包含 #inclucle<>一行。

如不说明,下面谈到的库函数均指非本征库函数。

第二节几类重要库函数

专用寄存器 include 文件

例如 8031、8051 均为其中包括了所有 8051 的 SFR及其位定义,一般系统都必须包括本文件。

绝对地址 include 文件

该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。

动态内存分配函数,位于中

缓冲区处理函数位于 “”中

其中包括拷贝比较移动等函数如:

memccpy memchr memcmp memcpy memmove memset 这样很方便地对缓冲区进行处理。

输入输出流函数,位于 “”中

流函数通 8051 的串口或用户定义的 I/O 口读写数据, 缺省为 8051 串口,如要修改,比如改为 LCD显示,可修改 lib 目录中的及源文件,然后在库中替换它们即可。

第 三 节Kei l C5 1 库 函 数 原 型 列 表

1.

bit

bit

bit

bit

bit

bit

bit

bit

bit

bit

bit

bit

bit

char

char

char

char

isalnum(char c);

isalpha(char c);

iscntrl(char c);

isdigit(char c);

isgraph(char c);

islower(char c);

isprint(char c);

ispunct(char c);

isspace(char c);

isupper(char c);

isxdigit(char c);

toascii(char c);

toint(char c) ;

tolower(char c);

__tolower(char c);

toupper(char c);

__toupper(char c);

2.

unsigned char _crol_(unsigned char c,unsigned char b); unsigned char _cror_(unsigned char c,unsigned char b); unsigned char _chkfloat_(float ual);

unsigned int _irol_(unsigned int i,unsigned char b); unsigned int _iror_(unsigned int i,unsigned char b);

unsigned long _irol_(unsigned long l,unsigned char b); unsigned long _iror_(unsigned long L,unsigned char b); void _nop_(void);

bit _testbit_(bit b) ;

3.

char getchar(void);

char _getkey(void);

char *gets(char * string,int len) ;

int printf(const char * fmtstr[,argument] ?);

char putchar(char c);

int puts (const char * string);

int scanf(const char * fmtstr.[,argument] ?);

int sprintf(char * buffer,const char *fmtstr[;argument]) ; int sscanf(char *buffer,const cha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值