当前位置:文档之家› 单片机C语言(C51)的常用库函数

单片机C语言(C51)的常用库函数

单片机C语言(C51)的常用库函数
单片机C语言(C51)的常用库函数

C51的常用库函数详解

C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。

C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。下面将C51的库函数分类列出并详细介绍其用法。

1 字符函数

字符函数的原型声明包含在头文件CTYPE.H中。常用的一些字符函数介绍如下。1.1 检查英文字母函数

检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下:

bit isalpha(char c);

其中,c为待判断的字符,如果是英文字母则返回1,否则返回0。程序示例如下:

1.2 检查字母数字函数

检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下:bit isalnum(char c);

1.3 检查控制字符函数

检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit iscntrl (char c);其中,c为待判断的字符。控制字符其取值范围为0x00~0xlF之间或等于0x7F,如果

是,则返回1,否则返回0。

1.4 十进制数字检查函数

十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下:

bit isdigit (char c);

其中,c为待判断的字符,如果是十进制数字则返回1,否则返回0。

1.5 可打印字符检查函数

可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下:

bit isgraph (char c);

其中,c为待判断的字符。可打印字符的取值范围为0x21~0x7C,不包含空格,如果是可打印字符则返回1,否则返回0。

1.6 包含空格的可打印字符检查函数

包含空格的可打印字符检查函数用于检查形参字符是否为可打印字符以及空格,其函数原型如下:

bit isprint (char c);

其中,c为待判断字符。如果是则返回1,否则返回0。该函数与isgraph的区别在于

包含了空格符,空格符为0x20。

1.7 格式字符检查函数

格式字符检查函数用于检查形参字符是否为标点、空格或格式字符,其函数原型如下:bit ispunct (char c);

其中,c为待判断字符,如果是则返回1,否则返回0。

1.8 小写英文字母检查函数

小写英文字母检查函数用于检查形参字符是否为小写英文字母,其函数原型如下:bit islower(char c);

其中,c为待判断字符。如果是小写英文字母则返回1,否则返回0。

1.9 大写英文字母检查函数

大写英文字母检查函数用于检查形参字符是否为大写英文字母,其函数原型如下:bit isupper(char c);

其中,c为待判断字符。如果是大写英文字母则返回1,否则返回0。

1.10 控制字符检查函数

控制字符检查函数用于检查形参字符是否为控制字符,其函数原型如下:

bit isspace (char c);

其中,c为待判断字符。如果是控制字符则返回1,否则返回0。控制字符包括:空格、制表符、回车、换行、垂直制表符和送纸,其取值范围为0x09~0x0d,或为0x20。

1.11 十六进制数字检查函数

十六进制数字检查函数用于检查形参字符是否为十六进制数字,其函数原型如下:bit isxdigit (char c);

其中,c为待判断字符。如果是16进制数字字符则返回1,否则返回0。

1.12 十六进制数字转换函数

十六进制数字检查函数用于转换形参字符为十六进制数字,其函数原型如下:

char toint (char c);

其中,c为待转换字符。该函数将形参字符0~9、a~f(大小写无关)转换为16进制数字。其中,对于字符0~9,返回值为0H~9H,对于ASCII字符a~f(大小写无关),返回值为0AH~0FH。

1.13 大写字符转换函数

大写字符转换函数用于将大写字符转换为小写字符,其函数原型如下:

char tolower (char c);

其中,c为待转换的大写字符。如果字符参数不在A~Z之间,则该函数将不起作用,而直接返回原字符。

1.14 小写字符转换函数

小写字符转换函数用于将小写字符转换为大写字符,其函数原型如下:

char toupper (char c);

其中,c为待转换的小写字符。如果字符参数不在a~z之间,则该函数将不起作用,而直接返回原字符。

1.15 ASCII字符转换函数

ASCII字符转换函数用于将任何字符型参数缩小到有效的ASCII范围之内,其函数原型如下:

char toascii (char c);

其中,c为待转换的字符。该函数执行的操作是将形参数值和0x7f做与运算,从而去掉第7位以上的所有位数。如果形参已是有效的ASCII字符,则不作处理,直接返回原字符。

1.16 大写字符宏转换函数

大写字符宏转换函数用于大写字符转换为小写字符,其函数原型如下:

char _tolower(char c);

其中,c为待转换的大写字符。这其实是一个由宏定义完成的操作,其功能是将字符参数c与常数0x20逐位进行或运算,从而将大写字符转换为小写字符。

1.17 小写字符宏转换函数

小写字符宏转换函数用于小写字符转换为大写字符,其函数原型如下:

char _toupper (char c);

其中,c为待转换的小写字符。这其实是一个由宏定义完成的操作,其功能是将字符参数c与常数0xdf逐位进行与运算,从而将小写字符转换为大写字符。

2 字符串函数

字符串函数的原型声明包含在头文件STRING.H中。在C51语言中,字符串应包括2个或多个字符,字符串的结尾以空字符来表示。字符串函数通过接受指针串来对字符串进行处理。常用的字符串函数介绍如下。

2.1 字符查找函数

字符查找函数用于在字符串中顺序查找字符,其函数原型如下:

void *memchr(void*sl,char val,int len);

其中,s1为输入字符串,val为待查找的字符,len为查找的长度范围。该函数的功能是在字符串s1中顺序搜索前len个字符以找出字符val,如果找到则返回sl中指向val的指针,如果没有找到则返回NULL。

2.2 指定长度的字符串比较函数

指定长度的字符串比较函数用于按照指定的长度比较两个字符串的大小,其函数原型如下:

char memcmp(void*s1, void*s2,int len);

其中,s1和s2为输入字符串,len为比较的长度。该函数的功能是逐个比较字符串

sl和s2的前len个字符,如果相等则返回0,如果字符串s1大于s2,则返回一个正数,如果字符串s1小于s2,则返回一个负数。如果两个字符串的长度小于len,该函数仍将一直比较len个字符,这种情况下,有可能结果是错误的。因此应该保证len不能超过最短字符串的长度。

2.3 字符串复制函数

字符串复制函数用于复制指定长度的字符串,其函数原型如下:

void*memcpy(void*dest,void*src,int len);

其中,dest为目标字符串,src为源字符串,len为复制的长度。该函数的功能是从src 所指向的字符串中复制len个字符到dest字符串中,其返回值指向dest中的最后一个字符的指针。

2.4 带终止字符的字符串复制函数

带终止字符的字符串复制函数用于复制字符串,如果遇到终止字符则停止复制,其函数原型如下:

void*memccpy(void*dest, void*src,char val,int len);

其中,dest为目标字符串,src为源字符串,val为终止字符,len为复制的长度。该函数的功能是复制字符串src中的len个字符到dest中,复制len个字符后则返回NULL。如果遇到字符val则停止复制,此时返回一个指向dest中的下一个元素的指针。

2.5 字符串移动函数

字符串移动函数同样用于复制字符串,其函数原型如下:

void *memmove(void*dest,void*src,int len);

其中,dest为目标字符串,src为源字符串,len为复制长度。该函数的功能是从src 所指向的字符串中复制len个字符到dest字符串中,其返回值指向dest中的最后一个字符的指针。其功能与memcpy相同,但是复制区间src与dest可以发生交迭。

2.6 字符串填充函数

字符串填充函数用于按规定的字符填充字符串,其函数原型如下:

void*memset(void*s,char val,int len);

其中,s为待填充的字符串,val为填充字符,len为填充的长度。该函数实现的操作是用字符val来填充字符串s,共填充len个单元

2.7 字符串追加函数

字符串追加函数用于复制字符串到另一个字符串的尾部,其函数原型如下:

void *strcat(char *s1,char *s2);

其中,s1为目标字符串,s2为待复制的字符串。该函数实现的操作是将字符串s2复制到字符串s1的尾部。其中字符串s1要有足够的大小来保存两个字符串。该函数的返回值指向字符串s1中的第一个字符的指针。

2.8 指定长度的字符串追加函数

指定长度的字符串追加函数用于复制指定长度的字符串到另一个字符串的尾部,其函数原型如下:

void*strncat(,char *s1,char *s2,int n);

其中,s1为目标字符串,s2为待复制的字符串,n为复制的长度。该函数实现的操作是从字符串s2中复制n个字符添加到字符串s1的尾部。其中,如果字符串s2的长度比

n小,则将全部复制字符串s2(包括串结束符)。

2.9 字符串比较函数

字符串比较函数用于比较两个字符串的大小,其函数原型如下:

char strcmp(char *s1,char *s2);

其中,s1和s2为待比较的字符串。该函数的功能是比较字符串s1和s2,如果两者相等则返回0;如果s1s2,则返回一个正数。

2.10 包含结束符的字符串比较函数

包含结束符的字符串比较函数用于比较两个字符串的大小,其函数原型如下:

char*strncmp(char *s1,char *s2,int n);

其中,s1和s2为待比较的字符串,n为比较的长度。该函数的功能是比较字符串s1和s2的前n个字符,如果两者相等则返回0;如果s1s2,则返回一个正数。这里需要和memcmp函数相区别,如果字符串的长度小于n,则strncmp 函数比较到字符串结束符后便停止,这和memcmp函数是不一样的。

2.11 字符串覆盖函数

字符串覆盖函数用于将一个字符串覆盖另一个字符串,其函数原型如下:

char* strcpy(char *s1,char *s2);

其中,s1为目标字符串,s2为源字符串。该函数的功能是将字符串s2(包括结束符)复制到字符串s1中的第1个字符指针处。这里需要注意和strcat函数相区别,strcat函数将字符串s2复制到字符串s1的末尾。

2.12 指定长度的字符串覆盖函数

指定长度的字符串覆盖函数用于将一个指定长度的字符串覆盖另一个字符串,其函数原型如下:

char*strncpy(char *s1,char *s2,int n);

其中,s1为目标字符串,s2为源字符串,n为长度。该函数实现的操作是从字符串s2(包括结束符)中复制n个字符到字符串s1中的第1个字符指针处。如果字符串s2的长度小于n,则s1串以0补齐到长度n。

2.13 获取字符串个数函数

获取字符串个数函数用于返回字符串中字符总数,其函数原型如下:

char*strlen(char *s1);

其中,s1为输入字符串。该函数的功能是获取字符串s1中的字符个数,返回值的大小不包括结尾的字符串结束符。

2.14 搜索字符串函数

搜索字符串函数用于搜索字符串出现的位置,其函数原型如下:

char*strstr(const char *s1,char*s2);

其中,s1为目标字符串,s2为搜索的字符串。该函数实现的操作是在字符串s1中搜索第一次出现字符串s2的位置,并返回该处的指针。如果字符串s1中不包括字符串s2,则该函数返回一个空指针。

2.15 搜索字符函数

搜索字符函数用于搜索字符出现的位置,其函数原型如下:

char*strchr(char *s1,char c);

其中,s1为目标字符串,c为待搜索的字符。该函数的功能是搜索字符串s1中是否包含字符c,如果包含则返回第一次指向该字符的指针,否则返回NULL。被搜索的字符可以是串结束符,此时返回值是指向串结束符的指针。

2.16 返回位置值的字符搜索函数

返回位置值的字符搜索函数用于搜索并返回字符出现的位置,其函数原型如下:int strpos(char*s1,char c);

其中,s1为目标字符串,c为搜索的字符。该函数的功能是查找并返回字符c在字符串s1中第一次出现的位置值,没有找到该字符则返回-1,s1串首字符的位置值是0。strpos 函数的功能与strchr类似,只不过返回值不同。

2.17 字符包含函数

字符包含函数用于检查字符串中是否包含某字符,其函数原型如下:

char*strrchr(char *s1,char c);

其中,s1为目标字符串,c为查找的字符。该函数的功能是搜索字符串s1中是否包含字符c,如果包含则返回最后一次指向该字符的指针,否则返回NULL。被搜索的字符可以是串结束符,此时返回值是指向串结束符的指针。

2.18 返回位置值的字符包含函数

返回位置值的字符包含函数同样用于检查字符串中是否包含某字符,其函数原型如下:

int strrpos(char*s1,char c);

其中,s1为目标字符串,c为查找的字符。该函数的功能是查找并返回字符c在字符串s1中最后一次出现的位置值,没有找到该字符则返回-1,s1串首字符的位置值是0。strrpos函数的功能与strrchr类似,只不过返回值不同。

2.19 在指定字符集中查找不包含字符函数

在指定字符集中查找不包含字符函数用于查找不包含在指定字符集中的字符,其函数原型如下:

int strspn(char*s1,char*set);

其中,s1为目标字符串,set为字符集。该函数的功能是搜索字符串s1中第一个不包含在set串中的字符,返回值是字符串s1中包括在set中的字符的个数。如果s1中所有的字符都包含在set中,则返回s1的长度(不包括结束符)。如果set是空字符串则返回0。

2.20 在指定字符集中查找包含字符函数

在指定字符集中查找包含字符函数用于查找包含在指定字符集中的字符,其函数原型如下:

int strcspn(char*s1,char*set);

其中,s1为目标字符串,set为字符集。该函数的功能是搜索的是第一个包含在set 串中字符,返回值是字符串s1中包括在set中的字符的个数。如果s1中所有的字符都包含在set中,则返回s1的长度(不包括结束符)。如果set是空字符串则返回0。

2.21 查找第一个包含字符函数

查找第一个包含字符函数用于查找第一个包含在指定字符集中的字符,其函数原型如下:

char*strpbrk(char *s1,char*set);

其中,s1为目标字符串,set为字符集。该函数的功能是搜索字符串s1中第一个包含在set串中的字符,返回值指向搜索到的字符的指针,如果未找到,则返回NULL。2.22 查找最后一个包含字符函数

查找最后一个包含字符函数用于查找最后一个包含在指定字符集中的字符,其函数原型如下:

char*strrpbrk(char *s1,char*set);

其中,s1为目标字符串,set为字符集。该函数的功能是搜索字符串s1中最后一个包含在set串中的字符,返回值指向搜索到的字符的指针,如果未找到,则返回NULL。

3 I/O函数

I/O函数主要用于数据的输入输出等操作,C51的I/O库函数的原型声明包含在头文件STDIO.H中。这些I/O函数使用8051单片机的串行接口进行通信,因此,在使用之前需要先进行串口的初始化。例如:

SCON=0x50; //串口模式1,允许接收

TMOD|=0x20; //初始化T1为定时功能,模式2

PCON|=0x80; //设置SMOD=1

TL1=0xF4; //波特率4800bit/s,初值

TH1=0xF4;

IE|=0x90; //中断

TR1=1; //启动定时器

3.1 字符读入函数

字符读入函数用于从串口读入一个字符,其函数原型如下:

char _getkey(void);

该函数执行的操作是等待从8051的串口读入一个字符,并返回读入的原字符。程序示例如下:

3.2 字符读入输出函数

字符读入输出函数用于从串口读入一个字符并输出该字符,其函数原型如下:

char getchar (void);

该函数与_getkey函数有细微的不同,其执行的操作是使用_getkey从串口读入的一个字符,然后使用putchar函数将读入的字符输出。

3.3 字符串读入函数

字符串读入函数用于从串口读入一个字符串,其函数原型如下:

char *gets (char*s, int n);

其中,s保存读入的字符串,n为字符串的长度。该函数执行的操作是使用getchar函数从串口读入一个长度为n的字符串,并存入字符数组s中。如果遇到换行符,则结束字符的输入。输入成功时将返回传入的参数指针,失败时返回空指针NULL。

3.4 字符回送函数

字符回送函数用于将输入的字符回送到输入缓冲区,其函数原型如下:

char ungetchar (char c);

其中,c为输入字符。该函数执行的操作是将输入的字符回送到输入缓冲区,如果函数调用成功则返回char型值c,失败时则返回EOF。

3.5 字符输出函数

字符输出函数用于通过8051串行口输出字符,其函数原型如下:

char putchar (char c);

其中,c为通过8051串行口输出的字符。

3.6 格式化输出函数

格式化输出函数用于按照一定的格式输出数据或字符串,其函数原型如下:

int printf (const char *fmstr[,argument]…);

该函数的功能是以一定的格式通过8051单片机的串行口输出数值和字符串。其中第一个参数fmstr是格式控制字符串,参数argument可以是字符串指针、字符或数值,该函数的返回值为实际输出的字符个数。

3.7 格式化内存缓冲区输出函数

格式化内存缓冲区输出函数用于按照一定的格式将数据或字符串输出到内存缓冲区中,其函数原型如下:

int sprintf (char*s,const char *fmstr[,argument]…);

该函数执行的操作是通过指针s,将字符串送入内存数据缓冲区,并以ASCII码的形式储存。

3.8 字符串输出函数

字符串输出函数用于将字符串和换行符写入串行口,其函数原型如下:

int puts (const char*s);

其中,s为输出的字符串或换行符。如果执行成功则返回0,错误时返回EOF。程序示例如下:

3.9 格式化输入函数

格式化输入函数用于将字符串和数据按照一定的格式从串口读入,其函数原型如下:

int scanf (const char *fmstr[,argument]…);

该函数的功能是在格式字符的控制下从串行口读入数据。其中每个参数都必须是指针。scanf返回值是所发现并转换的输入项数,如遇到错误则返回EOF。

该函数的格式控制字符串形式如下,方括号内是可选项。

%[*][width] [{B[h][l]}]type

3.10 格式化内存缓冲区输入函数

格式化内存缓冲区输入函数用于将格式化的字符串和数据送入数据缓冲区,其函数原型如下:

int sscanf (char*s,const char *fmstr[,argument]…);

该函数的功能是将输入的字符串通过指针s指向的数据缓冲区。输入数据根据格式控制字符串fmstr被存放到由argument指定的地址。其它方面,sscanf函数与scanf函数类似。

3.11 字符串内存输出函数

字符串内存输出函数用于将格式化字符串输出到内存数据缓冲区,其函数原型如下:int vprintf (const char *fmstr,char *argptr);

其中,fmstr为格式化字符串,argptr指向变量表的指针而不是变量表,函数返回值为实际写入到输出字符串中的字符数。其它方面,vprintf函数与printf函数类似。

3.12 指向缓冲区的输出函数

指向缓冲区的输出函数用于将格式化字符串和数字输出到由指针所指向的内存数据缓冲区,其函数原型如下:

int vsprintf (char*s,const char *fmstr,char *argptr);

该函数执行的操作是将格式化字符串和数字输出到由指针所指向的内存数据缓冲区。其中,该函数接受的是一个指向变量表的指针而不是变量表,其返回值为实际写入到输出字符串中的字符数。其他方面vsprintf函数与sprintf函数类似。

4 数学函数

数学函数主要用于进行数学运算,其原型声明包含在头文件MATH.H中。下面介绍一些常用的数学函数。

4.1 绝对值函数

绝对值函数用于计算并返回输出数据的绝对值。按照其操作数的数据类型的不同,有如下几种形式:

int abs(int val);

char cabs(char val);

float fabs(float val);

long labs(long val)

这些函数分别用于计算整型、字符型、浮点型以及长整型数据的绝对值。

4.2 指数以及对数函数

指数函数用于计算并返回输出数据的指数。对数函数用于计算并返回输出数据的对数。其函数原型示例如下:

float exp(float x);

float log(float x);

float log10(float x);

float sqrt(float x);

其中exp函数用于计算并返回浮点数x的指数,log函数用于计算并返回浮点数x的自然对数(自然对数以e为底,e=2.718282),log10函数用于计算并返回浮点数x的以10为底的对数值,sqrt函数用于计算并返回浮点数x的平方根。

4.3 三角函数

三角函数用于计算数学中三角函数的值。在C51语言中包含如下几种三角函数:float cos(float x);

float sin(float x);

float tan(float x);

float acos(float x);

float asin(float x);

float atan(float x);

float atan2(float y,float x);

float cosh(float x);

float sinh(float x);

float tanh(float x);

4.4 取整函数

取整函数用于取输入数据的整数。在C51语言中,包含两类取整函数,示例如下:float ceil(float x);

float floor(float x);

其中ceil函数用于计算并返回一个不小于x的最小正整数(作为浮点数),floor函数用于计算并返回一个不大于x的最小正整数(作为浮点数)。

4.5 浮点型分离函数

浮点型分离函数用于将浮点型数据的整数和小数部分分开,其函数原型如下:

float modf(float x,float*ip);

函数modf将浮点数x分成整数和小数两部分,整数部分放入*ip,返回值为小数部分。两者都含有与x相同的符号。

4.6 幂函数

幂函数用于进行幂指数运算。其函数原型如下:

float pow(float x,floaty);

该函数用于计算并返回xy的值。如果x不等于0而y=0,则返回1。当x=0且y<=0或x<0且y不是整数时,返回NaN。

5 标准函数

标准函数主要用于完成数据类型转换以及存储器分配等操作。标准函数的原型声明包含在头文件STDLIB.H中。下面介绍常用的一些函数。

5.1 字符串转换函数

字符串转换函数用于将字符串转换成数值类型并输出。根据输出数值类型的不同,可以有如下几种形式:

float atoi(char*sl);

float atol(char*sl);

float atof(char*sl);

其中,atoi函数用于将字符串sl转换成整型数值并返回该值。输入字符串的格式为:[whitespace][{+/-}]数字。其中,whitespace可由空格、/、制表符组成。这里的数字可以是一个或多个十进制数。

5.2 带返回指针的字符串转换函

带返回指针的字符串转换函数将字符串转换成数值类型并输出,同时返回未转换部分的指针。根据输出数值类型的不同,可以有如下几种形式:

float strtod(const char*s,char**ptr);

long strtol (const char*s,char**ptr,unsigned char base);

unsigner long strtoul (const char*s,char**ptr,unsigned char base);

5.3 随机函数

随机函数用于产生伪随机数。在C51语言中,包含两种随机函数,其函数声明如下:int rand();

void srand(int n);

其中,函数rand用于返回一个0到32767之间的伪随机数,而函数srand用来初始化随机数发生器的随机种子。如果不使用srand函数,则对rand函数的相继调用将产生相同的随机序列。

5.4 数组内存分配函数

数组内存分配函数用于为n个元素的数组分配内存空间,其函数原型如下:

void*calloc (unsighed int n,unsighed int size);

其中n数组元素的个数,size为数组中每个元素的大小。该函数所分配的内存区域用0进行初始化。返回值为已分配的内存单元起始地址,如果不成功则返回0。

5.5 释放内存函数

释放内存函数用于释放前面已分配的内存空间,其函数原型如下:

void free (void xdata *p);

其中,指针p指向待释放的存储区域。p必须是以前用calloc、malloc或realloc函数分配的存储区域,如果p为NULL,则该函数无效。经free函数所被释放的存储区域可以参与以后的分配。

5.6 初始化内存函数

初始化内存函数用于对前面申请的内存进行初始化,其函数原型如下:

void init_mempool (void xdata *p,unsighed int size);

其中,指针p表示存储区首地址,size表示存储区大小。该函数可对被函数calloc、malloc、free或realloc管理的存储区域进行初始化。

5.7 内存分配函数

内存分配函数用于在内存中分配指定大小的存储空间,其函数原型如下:

void*malloc (unsighed int size);

其中,size为分配的空间大小,返回值为指向所分配内存的指针。如果返回NULL,则表示没有足够的内存空间可用。

5.8 调整内存大小函数

调整内存大小函数用于调整先前分配的存储器区域大小,其函数原型如下:

void*realloc (void xdata *p,unsighed int size);

其中,参数p表示该存储区域的起始地址,参数size表示新分配的存储区域大小。该函数的返回值为新区域所指向的指针。如果返回NULL,则表示没有足够的内存空间可用。原存储器区域的内容被复制到新存储器区域中,如果新存储器区域较大,多出的区

域不作初始化。

6 内部函数

内部函数的原型声明包含在头文件INTRINS.H中。下面介绍常用的一些函数。

6.1 循环左移函数

循环左移函数主要用于将数据按照二进制循环左移n位。按照操作数据类型的不同,其函数原型如下几种形式:

unsighed char _crol_(unsighed char val,unsighed char n);

unsighed int _irol_(unsighed int val,unsighed char n);

unsighed long _lrol_(unsighed long val,unsighed char n);

其中,val为待移位的变量,n为循环移位的次数。函数_crol_、_irol_和_lrol_分别用于字符型、整型和长整形变量的循环左移,其返回值分别为移位后的字符型、整型和长整形。该函数与8051单片机的RLA指令相关。

6.2 循环右移函数

循环右移函数主要用于将数据按照二进制循环右移n位。按照操作数据类型的不同,其函数原型如下几种形式:

unsighed char _cror_(unsighed char val,unsighed char n);

unsighed int _iror_(unsighed int val,unsighed char n);

unsighed long _lror_(unsighed long val,unsighed char n);

其中,val为待移位的变量,n为循环移位的次数。函数_cror_、_iror_和_lror_分别用于字符型、整型和长整形变量的循环右移,其返回值分别为移位后的字符型、整型和长整形。该函数与8051单片机的RRA指令相关。

6.3 延时函数

延时函数用于使单片机程序产生延时,其函数原型如下:

void_nop_(void);

该函数类似于8051单片机的NOP指令。程序示例如下:

#include //头文件

#include

void main(void) //主函数

{

P1=0xFF; //P1端口输出0xFF

_nop_(); //延时

_nop_();

P1=0x00; //P1端口输出0x00

6.4 位测试函数

位测试函数用于对字节中的一位进行测试,其函数原型如下:

void_testbit_(bit x);

其中,x为待测位变量。如果该位变量置位则函数返回1,同时将该位复位为0,否则返回0。该函数产生一个8051单片机的JBC指令,其只能用于可直接寻址的位,不允许在表达式中使用。

7 绝对地址访问函数

绝对地址访问的函数包含在头文件ABSACC.H中,是一些宏定义的函数。下面分别介绍常用的一些函数。

7.1 BYTE型存储空间访问函数

BYTE型存储空间访问函数用于对8051单片机的存储空间进行绝对地址访问,可以做字节寻址。其宏定义原型如下:

#define CBYTE((unsighed char volatile code*)0)

#define DBYTE((unsighed char volatile idata*)0)

#define PBYTE((unsighed char volatile pdata*)0)

#define XBYTE((unsighed char volatile xdata*)0)

7.2 WORD型存储空间访问

WORD型存储空间访问函数可以访问8051的所有存储器空间。其宏定义原型如下:#define CWORD((unsighed int volatile code*)0)

#define DWORD ((unsighed int volatile idata*)0)

#define PWORD ((unsighed int volatile pdata*)0)

#define XWORD ((unsighed int volatile xdata*)0)

7.3 far存储区访问函数

far存储区访问函数用于访问far存储器区域。其宏定义原型如下:

#define FV AR(object,addr)(*((object volatile far*)((addr)+0x10000L)))

#define FCV AR(object,addr)(*((object const far*)((addr)+0x810000L)))

其中,FV AR用于访问far空间(存储类为HDA TA),FCV AR用于访问const far 空间(存储类为HCONST)。

7.4 far存储区数组访问函数

far存储区数组访问函数用于访问far存储器区域的数组类型目标。其宏定义原型如下:#define FARRAY(object,base)(*((object volatile far*)((base)+0x10000L)))

#define FCARRAY(object,base)(*((object const far*)((base)+0x810000L)))

其中,FARRAY用于访问far空间(存储类为HDATA),FCARRAY用于访问const far 空间(存储类为HCONST)。

8 变量参数表函数

变量参数表函数用于函数参数的个数和类型可变的场合。C51编译器允许函数的参数个数和类型是可变的,可使用简略形式(记号为“...”),这时参数表的长度和参数的数据类型在定义时是未知的。C51的变量参数表函数包含在头文件STDARG.H中,主要包括如下几个。

函数原型typedef char*va_list:其功能为将va_list定义成指向参数表的指针。

函数原型void va_start (ap,v)。其功能为初始化ap参数,其一般在一个可变长度参数表的函数中使用。在使用宏va_ arg进行存取前,必须调用函数来初始化可变参数表。

函数原型typedef va_arg(ap,type):其功能为从ap指向的可变长度参数表中检索type 类型的值。对va_ arg的第一次调用将返回在va_start宏中指定的v参数后的第一个参数。继续调用va_ arg将返回剩下的后续参数。对于每一个参数可以只调用一次,而且必须按照参数表中的参数的次序进行。

函数原型void va_end (ap)。其功能为终止在va_start宏中已被初始化的可变长度参数表的指针ap,并且关闭参数表,结束对可变参数表的访问。

9 全程跳转函数

全程跳转函数用于正常系列函数的调用和函数结束,还允许从深层函数调用中直接返回。其原型声明包含在头文件SETJMP.H中。这里介绍一些常用的全程跳转函数。

函数原型typedef char jmp_buf[_jblen]:其功能为定义用于保存和恢复程序环境的缓冲区,供setjmp和longjmp所使用,其必须定义为全局变量。

函数原型int setjmp(jmp_buf env):其功能为将程序执行的当前环境状态信息存入变量env中。当直接调用setjmp时,返回值为0,当从longjmp调用时,返回值为非0。

函数原型void longjmp(jmp_buf env, int retal):其功能为恢复先前调用setjmp时存在env中的环境状态信息,并从setjmp语句的下一条语句执行。参数val为调用setjmp的返回值。

10 计算结构体成员的偏移量函数

计算结构体成员的偏移量函数包含在头文件STDDEF.H中。其函数声明如下:

int offsetof (structure, member);

其中,structure为结构体,member为结构体成员。该函数计算member从开始位置的偏移量,并返回字节形式的偏移量值。

11 小结

本章详细讲解了C51语言中常用的库函数,主要包括字符函数、字符串函数、I/O函数、数学函数、标准函数、内部函数、绝对地址访问函数、变量参数表函数、全程跳转函数以及偏移量函数。这些库函数涵盖了常见的字符、字符串、数学计算、I/O控制等功能,读者在进行程序设计时可以直接调用使用。因此,熟练掌握和运用本章内容,可以大大减轻程序设计的负担,方便单片机的程序设计。

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言标准库函数2012

常用C语言标准库函数2012 C语言编译系统提供了众多的预定义库函数和宏。用户在编写程序时,可以直接调用这些库函数和宏。这里选择了初学者常用的一些库函数,简单介绍了各函数的用法和所在的头文件。 1.测试函数 Isalnum 原型:int isalnum(int c) 功能:测试参数c是否为字母或数字:是则返回非零;否则返回零 头文件:ctype.h Isapha 原型:int isapha(int c) 功能:测试参数c是否为字母:是则返回非零;否则返回零 头文件:ctype.h Isascii 原型:int isascii(int c) 功能:测试参数c是否为ASCII码(0x00~0x7F):是则返回非零;否则返回零 头文件:ctype.h Iscntrl 原型:int iscntrl(int c) 功能:测试参数c是否为控制字符(0x00~0x1F、0x7F):是则返回非零;否则返回零 头文件:ctype.h Isdigit 原型:int isdigit(int c) 功能:测试参数c是否为数字:是则返回非零;否则返回零。 头文件:ctype.h Isgraph 原型:int isgraph(int c) 功能:测试参数c是否为可打印字符(0x21~0x7E):是则返回非零;否则返回零头文件:ctype.h Islower 原型:int islower(int c) 功能:测试参数c是否为小写字母:是则返回非零;否则返回零 头文件:ctype.h

Isprint 原型:int isprint(int c) 功能:测试参数c是否为可打印字符(含空格符0x20~0x7E):是则返回非零;否则返回零 头文件:ctype.h Ispunct 原型:int ispunct(int c) 功能:测试参数c是否为标点符号:是则返回非零;否则返回零 头文件:ctype.h Isupper 原型:int isupper(inr c) 功能:测试参数c是否为大写字母:是则返回非零;否则返回零 Isxdigit 原型:int isxdigit(int c) 功能:测试参数c是否为十六进制数:是则返回非零;否则返回零 2.数学函数 abs 原型:int abs(int i) 功能:返回整数型参数i的绝对值 头文件:stdlib.h,math.h acos 原型:double acos(double x) 功能:返回双精度参数x的反余弦三角函数值 头文件:math.h asin 原型:double asin(double x) 功能:返回双精度参数x的反正弦三角函数值 头文件:math.h atan 原型:double atan(double x) 功能:返回双精度参数的反正切三角函数值 头文件:math.h atan2 原型:double atan2(double y,double x) 功能:返回双精度参数y和x由式y/x所计算的反正切三角函数值 头文件:math.h cabs

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

C语言常见基本词汇及词汇解释

C语言常用基本词汇及其他提示语运算符与表达式: 1.constant 常量 2. variable 变量 3. identify 标识符 4. keywords 关键字 5. sign 符号 6. operator 运算符 7. statement语句 8. syntax 语法 9. expression 表达式 10. initialition初始化 11. number format 数据格式 12 declaration 说明 13. type conversion 类型转换 14.define 、definition 定义 条件语句: 1.select 选择 2. expression 表达式 3. logical expression 逻辑表达式 4. Relational expression 关系表达式 5.priority优先

6. operation运算 7.structure 结构 循环语句: 1.circle 循环 2. condition 条件 3. variant 变量 4. process过程 5.priority优先 6. operation运算 数组: 1. array 数组 2. reference 引用 3. element 元素 4. address 地址 5. sort 排序 6. character 字符 7. string 字符串 8. application 应用函数: 1.call 调用 2.return value 返回值 3.function 函数

4. declare 声明 5. `parameter 参数 6.static 静态的 7.extern 外部的 指针: 1. pointer 指针 2. argument 参数 3. array 数组 4. declaration 声明 5. represent 表示 6. manipulate 处理 结构体、共用体、链表: 1 structure 结构 2 member成员 3 tag 标记 4 function 函数 5 enumerate 枚举 6 union 联合(共用体) 7 create 创建 8 insert 插入 9 delete 删除 10 modify 修改

c语言中常用的函数和头文件

头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos

正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 头文件stdarg.h 函数列表

C语言中最常用标准库函数 - candyliuxj - CSDN博客

C语言中最常用标准库函数- candyliuxj - CSDN博客 C语言中最常用标准库函数收藏 标准头文件包括: <asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdlib.h> <stdio.h> <string.h> <time.h> 一、标准定义(<stddef.h>) 文件<stddef.h>里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,<stddef.h>都会被自动包含进来。 这个文件里定义: l 类型size_t (sizeof运算符的结果类型,是某个无符号整型); l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);

l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的 字符集的所有编码值。这里还保证空字符的编码值为0); l 符号常量NULL (空指针值); l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构 成员名。offsetor(s,m)求出成员m在结构类型t的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(<errno.h>) <errno.h>定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。 <errno.h>里还定义了两个宏EDOM和ERANGE,都是非0的整数值。数学函数执行中遇到参数错误,就会将errno 置为EDOM,如出现值域错误就会将errno置为ERANGE。 三、输入输出函数(<stdio.h>) 文件打开和关闭: FILE *fopen(const char *filename, const char *mode); int fclose(FILE * stream);

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=’a’&&ch<=’z’) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=’0’&&ch<=’9’) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

常用C语言标准库函数

常用C语言标准库函数 C语言编译系统提供了众多的预定义库函数和宏。用户在编写程序时,可以直接调用这些库函数和宏。这里选择了初学者常用的一些库函数,简单介绍了各函数的用法和所在的头文件。 1.测试函数 Isalnum 原型:int isalnum(int c) 功能:测试参数c是否为字母或数字:是则返回非零;否则返回零 头文件:ctype.h Isapha 原型:int isapha(int c) 功能:测试参数c是否为字母:是则返回非零;否则返回零 头文件:ctype.h Isascii 原型:int isascii(int c) 功能:测试参数c是否为ASCII码(0x00~0x7F):是则返回非零;否则返回零 头文件:ctype.h Iscntrl 原型:int iscntrl(int c) 功能:测试参数c是否为控制字符(0x00~0x1F、0x7F):是则返回非零;否则返回零头文件:ctype.h Isdigit 原型:int isdigit(int c) 功能:测试参数c是否为数字:是则返回非零;否则返回零。 头文件:ctype.h Isgraph 原型:int isgraph(int c) 功能:测试参数c是否为可打印字符(0x21~0x7E):是则返回非零;否则返回零 头文件:ctype.h Islower 原型:int islower(int c) 功能:测试参数c是否为小写字母:是则返回非零;否则返回零 头文件:ctype.h Isprint 原型:int isprint(int c) 功能:测试参数c是否为可打印字符(含空格符0x20~0x7E):是则返回非零;否则返回零 头文件:ctype.h Ispunct 原型:int ispunct(int c) 功能:测试参数c是否为标点符号:是则返回非零;否则返回零

C语言中的22个数学函数

C语言的22个数学函数 在使用C语言数学函数时候,应该在该源文件中使用以下命令行: #include <> 或#include "",这里的<>跟""分别表示:前者表示系统到存放C库函数头文件所在的目录寻找需要包含的文件,这是标准方式;后者表示系统先在拥护当前目录中寻找要包含的文件,若找不到,再按前者方式查找。为节省时间,在使用自己编写的文件时使用的是“”,自己编写的文件一般是在当前目录下。 22个数学函数中只有abs的数据类型是:”整型“,”int“。 log10、logE中的10与E是在log的左下角位置。其余求弧度函数需要看清楚是不是指数。 排列方式如下:函数名:函数功能参数介绍,返回值,说明。函数原型。 abs: 求整型x的绝对值,返回计算结果。 int abs(int x); acos:计算COS-1(x)的值,返回计算结果,x应在-1到1范围内。 double acos(double x); asin: 计算SIN-1(x)的值,返回计算结果,x应在-1到1范围内。 double asin(double x); atan: 计算TAN-1(x)的值,返回计算结果。double atan(double x); atan2: 计算TAN-1/(x/y)的值,返回计算结果。 double atan2(double x,double y); cos: 计算COS(x)的值,返回计算结果,x的单位为弧度。 double cos(double x); cosh: 计算x的双曲余弦COSH(x)的值,返回计算结果。 double cosh(double x); exp: 求e x的值,返回计算结果。 double exp(double x); fabs: 求x的绝对值,返回计算结果。 duoble fabs(fouble x); floor: 求出不大于x的最大整数,返回该整数的双精度实数。 double floor(double x); fmod: 求整除x/y的余数,返回该余数的双精度。 double fmod(double x,double y); frexp: 把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*2n,n存放在eptr 指向的变量中。返回数字部分<=x<1。 double frexp(double x, double *eptr); log: 求log e x,ln x。返回计算结果。 double log(double x); log10: 求log10x。返回计算结果。 double log10(double x); modf: 把双精度数val分解为整数部分和小数部分,把整数部分存到iptr指向的单元。返回val 的小数部分。 double modf(double val,double *iptr); pow: 计算x y的值,返回计算结果。 double pow(double x,double y); rand: 产生-90到32767间的随机整数。返回随机整数。 int rand(void); sin: 计算SINx的值。返回计算结果。x单位为弧度。 double sin(double x); sinh: 计算x的双曲正弦函数SINH(x)的值,返回计算结果。 double sinh(double x); sqrt: 计算根号x。返回计算结果。x应>=0。 double sqrt(double x); tan: 计算TAN(x)的值,返回计算结果。x单位为弧度。 double tan(double x); tanh: 计算x的双曲正切函数tanh(x)的值。返回计算结果。 double tanh(double x);

C语言中绘图的函数库

C语言中绘图的函数库 图形和图像函数包含在graphics.h里面 (一) 像素函数 56. putpiel() 画像素点函数 57. getpixel()返回像素色函数 (二) 直线和线型函数 58. line() 画线函数 59. lineto() 画线函数 60. linerel() 相对画线函数 61. setlinestyle() 设置线型函数 62. getlinesettings() 获取线型设置函数 63. setwritemode() 设置画线模式函数 (三)、多边形函数 64. rectangle() 画矩形函数 65. bar() 画条函数 66. bar3d() 画条块函数 67. drawpoly() 画多边形函数 (四)、圆、弧和曲线函数 68. getaspectratio()获取纵横比函数 69. circle()画圆函数 70. arc() 画圆弧函数 71. ellipse()画椭圆弧函数 72. fillellipse() 画椭圆区函数 73. pieslice() 画扇区函数 74. sector() 画椭圆扇区函数 75. getarccoords()获取圆弧坐标函数 (一) 像素函数 56. putpixel() 画像素点函数 功能:函数putpixel() 在图形模式下屏幕上画一个像素点。 用法:函数调用方式为void putpixel(int x,int y,int color); 说明:参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。 此函数相应的头文件是graphics.h 返回值:无 例:在屏幕上(6,8)处画一个红色像素点: putpixel(6,8,RED); (二) 直线和线型函数

c语言常用库函数使用方法及用途

absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS 中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlio.h

atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h atol()将字符串转换成长整型数的函数 原形:long atol(const char *s) 功能:把s所指向的字符串转换成long int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h bcd()把一个数转换成对应的BCD码的函数 原形:bcd bcd(int x) bcd bcd(double x) bcd bcd(double x,int decimals) 注意:BCD码的精度可达17位。参数decimals是可选的,用来指定转换后小数点后的位数。 头文件:bcd.h bdos() 原形∶int bdos(int fnum,unsigned dx,unsigned al) 其中fnum是系统调用号;dx是传给寄存器DX的值;al是传给寄存器AL的值; 功能∶DOS系统调用(INT21H)

附录D C语言常用库函数

帮助文件 目录 语法: if(表达式) 语句 if(表达式)语句1 else语句2 if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m)语句m else 语句n switch(表达式) { case 常量表达式1:语句1 case常量表达式2:语句2 ┋ case常量表达式n:语句n default:语句n+1 } while (表达式) 语句; do 语句 while(表达式); for(表达式1;表达式2;表达式3)语句 break; continue;

附录C ASCII编码对照表

附录E 常用头文件 #include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值常量 #include //定义本地化函数 #include //定义数学函数 #include //定义输入/输出函数 #include //定义杂项函数及内存分配函数#include //字符串处理 #include //基于数组的输入/输出 #include //定义关于时间的函数 #include //宽字符处理及输入/输出 #include //宽字符分类 #include //复数类 #include //基本输入/输出支持 #include //输入/输出系统使用的前置声明#include #include //基本输入流 #include //基本输出流 #include //STL 队列容器 #include //STL 集合容器 #include //基于字符串的流 #include //STL 堆栈容器 #include //标准异常类 #include //底层输入/输出支持 #include //字符串类 #include //STL 通用模板类 #include //STL 动态数组容器 #include 通用dos中断接口函数 #include )驻留并退出函数

c语言中数学函数

c语言中数学函数 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

C语言中之数学函数 C语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入:#include <> 编译时,必须加上参数「-lm」(表示连结至数学函式库),例如「gcc - lm 」。 函数之自变量与传回之值型别见自变量或函数前之型别宣告。 函数已经在「」或其它标头档宣告过了,因此在使用时不必再加型别宣告,例如「y=sin(x);」,不用写成「y=double sin(double x);」。 函数说明 double sin(double x) x 的正弦函数值 double cos(double x) x 的余弦函数值 double tan(double x) x 的正切函数值 double asin(double x) x 的反正弦函数值 sin-1x,x的值在 [-1,1] 之间,传回的值在 [-p/2,p/2] 之间double acos(double x) x 的反余弦函数值cos-1x,x的值在 [-1,1] 之间,传回的值在 [-p/2,p/2] 之间double atan(double x) x 的反正切函数值tan-1x,传回的值在 [-p/2,p/2] 之间 double atan2(double y, double x) y/x 的反正切函数值tan-1(y/x),传回的值在 [-p, p] 之间 double sinh(double x) x 的双曲正弦函数值 double cosh(double x) x 的双曲余弦函数值

C语言中常用的标准库函数

C语言中常用的标准库函数 (2011-03-17 09:00:43) 转载 标签: 库函数 c语言 字符串 输入输出 整数 杂谈 标准头文件包括: 一、标准定义() 文件里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,都会被自动包含进来。 这个文件里定义: l 类型size_t (sizeof运算符的结果类型,是某个无符号整型); l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型); l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的

字符集的所有编码值。这里还保证空字符的编码值为0); l 符号常量NULL (空指针值); l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构 成员名。offsetor(s,m)求出成员m在结构类型t 的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。 里还定义了两个宏EDOM和ERANGE,都是非0的整数值。数学函数执行中遇到参数错误,就会将errno置为EDOM,如出现值域错误就会将errno 置为ERANGE。 三、输入输出函数() 文件打开和关闭: FILE *fopen(const char *filename, const char *mode); int fclose(FILE * stream); 字符输入输出: int fgetc(FILE *fp); int fputc(int c, FILE *fp); getc和putc与这两个函数类似,但通过宏定义实现。通常有下面定义: #define getchar() getc(stdin) #define putchar(c) putc(c, stdout) int ungetc(int c, FILE* stream); //把字符 c 退回流 stream

单片机C语言(C51)的常用库函数

C51的常用库函数详解 C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。 C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。下面将C51的库函数分类列出并详细介绍其用法。 1 字符函数 字符函数的原型声明包含在头文件CTYPE.H中。常用的一些字符函数介绍如下。1.1 检查英文字母函数 检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下: bit isalpha(char c); 其中,c为待判断的字符,如果是英文字母则返回1,否则返回0。程序示例如下: 1.2 检查字母数字函数 检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下:bit isalnum(char c);

1.3 检查控制字符函数 检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit iscntrl (char c);其中,c为待判断的字符。控制字符其取值范围为0x00~0xlF之间或等于0x7F,如果 是,则返回1,否则返回0。

1.4 十进制数字检查函数 十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下: bit isdigit (char c); 其中,c为待判断的字符,如果是十进制数字则返回1,否则返回0。 1.5 可打印字符检查函数 可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下: bit isgraph (char c); 其中,c为待判断的字符。可打印字符的取值范围为0x21~0x7C,不包含空格,如果是可打印字符则返回1,否则返回0。

c语言中常用库函数

#include #include #include main() { char c; int i,j,k,s; int m; double a; scanf("%c\n",&c); scanf("%d\n",&m); //若c是字母('A'-'Z','a'-'z')返回非0值,否则返回0 i=isalpha(c); printf("i=%d",i); //若c是数字('0'-'9')返回非0值,否则返回0 j=isdigit(c); printf("j=%d",j); //若c是大写字母('A'-'Z')返回非0值,否则返回0 k=isupper(c); printf("k=%d",k); //返回x的开方 a= sqrt(m) printf("a=%d",a); //若c是空格(' '),水平制表符('\t'),回车符('\r'), //走纸换行('\f'),垂直制表符('\v'),换行符('\n') //返回非0值,否则返回0 s= isspace( c) printf("s=%d",s); } 另外,还有 int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9') 返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0

《C语言程序设计》基本知识点.

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数(、函数n(等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1C源程序是由一个主函数和若干个其它函数组成的。 (2函数名后必须有小括号,函数体放在大括号内。 (3C程序必须用小写字母书写。 (4每句的末尾加分号。 (5可以一行多句。 (6可以一句多行。 (7可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1流程控制语句

流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。

相关主题
文本预览
相关文档 最新文档