51单片机实战教程之C语言基础(十 Keil C51函数库)
Keil C51 自带部分基础函数库。要使用,就必须先包含其对应的头文件。格式:
库函数是比较多的,要全部记住是比较困难的,也没必要全部记住它。要用记不住的库函数,可以打开库函数查看。将鼠标光标移动到包含的头文件上,点击鼠标右键,在弹出菜单中点击打开对应头文件即可。示例:
下面分比别列出以上头文件内容,供参考。
#ifndef __MATH_H__
#define __MATH_H__#if defined __CX2__ && (__CX2__ >= 558 || __CX2__ == 556 && __CX2_MINOR__ >= 207)
#ifndef HUGE_VAL
#define HUGE_VAL __inf__
#endif // HUGE_VAL#ifndef NAN
#define NAN __nan__
#endif // NAN#pragma SAVE
#pragma FUNCTIONS(STATIC)
/* intrinsic functions are reentrant, but need static attribute */
extern int abs (int val); //计算并返回int val的绝对值
#pragma RESTORE
#endif#pragma SAVE
#pragma REGPARMS
#if !defined (__CX2__)
extern char cabs (char val); //计算并返回char val的绝对值
extern int abs (int val); //计算并返回int val的绝对值
extern long labs (long val); //计算并返回long val的绝对值
#endifextern float fabs (float val); //计算并返回float val的绝对值
extern float sqrt (float val); //计算并返回float val的正平方根
extern float exp (float val); //算并返回浮点数float val的指数函数
extern float log (float val); //计算并返回浮点数float val的自然对数
extern float log10 (float val); //计算并返回浮点数val以10为底的对数
extern float sin (float val); //计算并返回float val的正弦值,x是弧度值
extern float cos (float val); //计算并返回float val的余弦值,x是弧度值
extern float tan (float val); //计算并返回float val的正切值,x是弧度值
extern float asin (float val); //计算并返回float val的反正弦值,返回值为弧度值
extern float acos (float val); //计算并返回float val的反余弦值,返回值为弧度值
extern float atan (float val); //计算并返回float val的反正切值,返回值为弧度值
extern float sinh (float val); //计算并返回float val的双曲正弦值
extern float cosh (float val); //计算并返回float val的双曲余弦值
extern float tanh (float val); //计算并返回float val的双曲正切值
extern float atan2 (float y, float x); //计算并返回y/x的反正切值,值域为-π~+πextern float ceil (float val); //计算并返回一个不小于float val的最小整数,即向上取整
extern float floor (float val); //计算并返回一个不大于float val的最小整数
extern float modf (float val, float *n); //将浮点数x分成整数和小数部分,两者都含有与x相同的符号,整数部分放入*ip,小数部分作为返回值
extern float fmod (float x, float y); //浮点数求余,返回x/y的余数
extern float pow (float x, float y); //返回x的y次方的值#if defined (__CX2__)
extern float frexp (float val, int *exp);
extern float ldexp (float val, int exp);
#endif#pragma RESTORE#endif
/*--------------------------------------------------------------------------
STDLIB.HStandard functions.
Copyright (c) 1988-2008 Keil Elektronik GmbH and Keil Software, Inc.
Copyright (c) 2008-2016 ARM Germany GmbH
All rights reserved.
--------------------------------------------------------------------------*/#ifndef __STDLIB_H__
#define __STDLIB_H__#ifndef _SIZE_T#define _SIZE_Ttypedef unsigned int size_t;
#endif#ifndef NULL#define NULL ((void *)0)
#endif#ifndef _WCHAR_T_DEFINED_
#define _WCHAR_T_DEFINED_
typedef char wchar_t;
#endif#if defined (__CX2__)
#ifndef _DIV_T_DEFINED
typedef struct _div_t {int quot;int rem;
} div_t;
typedef struct _ldiv_t {long quot;long rem;
} ldiv_t;
#define _DIV_T_DEFINED
#endif // _DIV_T_DEFINED
#endif // __CX2__#ifndef RAND_MAX#define RAND_MAX 32767u
#endif#if defined (__CX2__)
#pragma SAVE
#pragma FUNCTIONS(STATIC)
/* intrinsic functions are reentrant, but need static attribute */
extern int abs (int val);
#pragma RESTORE
#endif // __CX2__#pragma SAVE
#pragma REGPARMSextern char cabs (char val); //计算并返回char val的绝对值
#if !defined (__CX2__)
extern int abs (int val); //计算并返回int val的绝对值
#endif // __CX2__
extern long labs (long val); //计算并返回long val的绝对值extern float atof (const char *s1); //字符数组(字符串)转浮点数,返回浮点数
extern long atol (const char *s1); //字符数组(字符串)转长整型,返回长整型
extern int atoi (const char *s1); //字符数组(字符串)转长char型,返回char型
extern int rand (void); //生成随机整数
extern void srand (unsigned int seed); //用来将随机数发生器初始化成一个已知(或期望)值#ifdef _DIV_T_DEFINED
extern div_t __div (int numer, int denom);
#define div(numer,denom) __div((numer),(denom));
extern ldiv_t ldiv (long numer, long denom);
#endif // _DIV_T_DEFINEDextern float strtod (const char *nptr, char **endptr); //将字符串s转换为一个浮点型数据并返回,字符串前面的空格、/、tab符被忽略
extern long strtol (const char *nptr, char **endptr, unsigned char base); //将字符串s转换为一个long型数据并返回,字符串前面的空格、/、tab符被忽略
extern unsigned long strtoul (const char *nptr, char **endptr, unsigned char base); //将字符串s转换为一个unsigned long型数据并返回,溢出时则返回ULONG_MAX。字符串前面的空格、/、tab符被忽略#define _MALLOC_MEM_ xdataextern void init_mempool (void _MALLOC_MEM_ *p, size_t size);
extern void _MALLOC_MEM_ *malloc (size_t size);
extern void free (void _MALLOC_MEM_ *p);
extern void _MALLOC_MEM_ *realloc (void _MALLOC_MEM_ *p, size_t size);
extern void _MALLOC_MEM_ *calloc (size_t nmemb, size_t size);#if defined (__CX2__)
extern void abort(void);
#endif // __CX2__#pragma RESTORE#endif // __STDLIB_H__
#ifndef EOF#define EOF -1
#endif#ifndef NULL#define NULL ((void *) 0)
#endif#ifndef _SIZE_T#define _SIZE_Ttypedef unsigned int size_t;
#endif#pragma SAVE
#pragma REGPARMS
extern char _getkey (void);
extern char getchar (void);
extern char ungetchar (char);
extern char putchar (char);
extern int printf (const char *, ...);
extern int sprintf (char *, const char *, ...);
extern int vprintf (const char *, char *);
extern int vsprintf (char *, const char *, char *);
extern char *gets (char *, int n);
extern int scanf (const char *, ...);
extern int sscanf (char *, const char *, ...);
extern int puts (const char *);#pragma RESTORE#endif
/*--------------------------------------------------------------------------
CTYPE.HPrototypes for character functions.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/#ifndef __CTYPE_H__
#define __CTYPE_H__#pragma SAVE
#pragma REGPARMS
extern bit isalpha (unsigned char);
extern bit isalnum (unsigned char);
extern bit iscntrl (unsigned char);
extern bit isdigit (unsigned char);
extern bit isgraph (unsigned char);
extern bit isprint (unsigned char);
extern bit ispunct (unsigned char);
extern bit islower (unsigned char);
extern bit isupper (unsigned char);
extern bit isspace (unsigned char);
extern bit isxdigit (unsigned char);
extern unsigned char tolower (unsigned char);
extern unsigned char toupper (unsigned char);
extern unsigned char toint (unsigned char);#define _tolower(c) ( (c)-'A'+'a' )
#define _toupper(c) ( (c)-'a'+'A' )
#define toascii(c) ( (c) & 0x7F )
#pragma RESTORE
/*--------------------------------------------------------------------------
STRING.HString functions.
Copyright (c) 1988-2008 Keil Elektronik GmbH and Keil Software, Inc.
Copyright (c) 2008-2016 ARM Germany GmbH
All rights reserved.
--------------------------------------------------------------------------*/#ifndef __STRING_H__
#define __STRING_H__#ifndef _SIZE_T#define _SIZE_Ttypedef unsigned int size_t;
#endif#ifndef NULL#define NULL ((void *)0)
#endif#pragma SAVE
#pragma REGPARMS
extern char *strcat (char *s1, const char *s2);
extern char *strncat (char *s1, const char *s2, size_t n);extern char strcmp (const char *s1, const char *s2);
extern char strncmp (const char *s1, const char *s2, size_t n);extern char *strcpy (char *s1, const char *s2);
extern char *strncpy (char *s1, const char *s2, size_t n);extern size_t strlen (const char *);extern char *strchr (const char *s, char c);
extern int strpos (const char *s, char c);
extern char *strrchr (const char *s, char c);
extern int strrpos (const char *s, char c);extern size_t strspn (const char *s, const char *set);
extern size_t strcspn (const char *s, const char *set);
extern char *strpbrk (const char *s, const char *set);
extern char *strrpbrk(const char *s, const char *set);
extern char *strstr (const char *s, const char *sub);
extern char *strtok (char *str, const char *set);extern char memcmp (const void *s1, const void *s2, size_t n);
extern void *memcpy (void *s1, const void *s2, size_t n);
extern void *memchr (const void *s, char val, size_t n);
extern void *memccpy (void *s1, const void *s2, char val, size_t n);
extern void *memmove (void *s1, const void *s2, size_t n);
extern void *memset (void *s, char val, size_t n);
#pragma RESTORE#endif
/*--------------------------------------------------------------------------
INTRINS.HIntrinsic functions for C51.
Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH
All rights reserved.
--------------------------------------------------------------------------*/#ifndef __INTRINS_H__
#define __INTRINS_H__#pragma SAVE#if defined (__CX2__)
#pragma FUNCTIONS(STATIC)
/* intrinsic functions are reentrant, but need static attribute */
#endifextern void _nop_ (void);
extern bit _testbit_ (bit);
extern unsigned char _cror_ (unsigned char, unsigned char);
extern unsigned int _iror_ (unsigned int, unsigned char);
extern unsigned long _lror_ (unsigned long, unsigned char);
extern unsigned char _crol_ (unsigned char, unsigned char);
extern unsigned int _irol_ (unsigned int, unsigned char);
extern unsigned long _lrol_ (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
#if defined (__CX2__)
extern int abs (int);
extern void _illop_ (void);
#endif
#if !defined (__CX2__)
extern void _push_ (unsigned char _sfr);
extern void _pop_ (unsigned char _sfr);
#endif#pragma RESTORE#endif
51单片机实战教程之C语言基础(十 Keil C51函数库)相关推荐
- 51单片机实战教程之C语言基础(五 C语言函数及其定义)
虽然部分C语言函数的返回值与其参数存在对应关系,但是它与数学里的函数不是同一概念.有的书上把它定义为完成特定任务的代码集合. C语言函数的格式为:返回值数据格式 函数名(参数列表){函数体}, 函数 ...
- 51单片机实战教程之C语言基础(一 创建Keil Project)
创建Keil Project 第 1 步 添加STC单片机型号及头文件到Keil 后面所有教程及示例将以STC15W4K61S4系列单片机为例,因此需先将STC单片机型号及头文件加入到Keil中.Ke ...
- 菜鸟教程之C语言基础(上)
菜鸟教程之C语言基础(上) 一.前言: 前几天,在看另一个教程视频,总感觉太啰嗦,讲的东西不符合我想要的. 这里,通过菜鸟教程,看一遍文档,打一遍笔记,想通过这样学一下C语言的基础. 感谢菜鸟教程. ...
- 51单片机学习1:C语言基础
1 C 语言介绍 C 语言是在 70 年代初问世的. 一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C 语言. 同时由 B.W.Kernighan 和 D.M.Ritchit 合 ...
- 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]
10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...
- iOS开发教程之OC语言-欧阳坚-专题视频课程
iOS开发教程之OC语言-34296人已学习 课程介绍 Objective-C是扩充C的面向对象编程语言,iOS开发是用的Objective-C语言,本专题更系统的讲解Objectiv ...
- 51单片机实战教程(一 数据类型别名定义)
前面已经讲了C语言基础,从此以后将进行编程实战.C数据类型名较长,编程输入不太方便. 下面编写一个定义数据类型别名的程序,并定义实现后面例程常用到的位操作及字符串操作函数. 1. 打开前面教程中创建的 ...
- java+mysql性能优化_Java培训实战教程之mysql优化
Java培训实战教程之mysql优化 更新时间:2015年12月29日13时30分 来源:传智播客Java培训学院 浏览次数: 1. mysql引擎 1.1. 引擎类型 MySQL常用的存储引擎 ...
- Wireshark数据抓包教程之Wireshark的基础知识
Wireshark数据抓包教程之Wireshark的基础知识 Wireshark的基础知识 在这个网络信息时代里,计算机安全始终是一个让人揪心的问题,网络安全则有过之而无不及.Wireshark作为国 ...
- 步进电机应用c语言程序设计实例,51单片机调节步进电机应用C语言程序设计
51单片机调节步进电机应用C语言程序设计 //步进电机应用C语言程序设计 #include #define uchar unsigned char sbit dula=P2^6; //数码管显示段选I ...
最新文章
- asp.net序列化
- 从0开始搭建ELK及采集日志的简单应用
- 程序员成长之路 java面试指导(作者说的极好要看) 静下心看
- 自从有了mybatis-plus代码生成器,写代码效率高了一大截
- Asp.net 自定义config文件读取
- 英雄联盟微信登录服务器怎么回事,英雄联盟微信怎么登陆 lol微信登录功能开放大区一览...
- 01 按指定格式读写文件出现乱码
- 享元模式在 Java Integer 中的应用
- C#中out和ref之间的区别
- java环境安装菜鸟教程,Java基础教程---JDK的安装和环境变量的配置
- 【非参数统计】概念及方法归纳比较(超适合期末复习)
- 怎么在另一台小米手机上云服务器,小米云服务使用手册
- 使用百度开发者工具 4.0 搭建专属的小程序 IDE
- FAQ(常见问题解答)
- 细胞和基因治疗产品法律监管问题及伦理的研究
- Google(谷歌)博客搜索中文测试版发布
- Transmission搭建BT下载服务器
- javasprit基础用法
- 前端js使浏览器窗口全屏与退出----浏览器全屏时 监测通过esc按键退出全屏 (退出全屏时有页面上的相关处理)
- 快速学习-cmd命令大全