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函数库)相关推荐

  1. 51单片机实战教程之C语言基础(五 C语言函数及其定义)

    虽然部分C语言函数的返回值与其参数存在对应关系,但是它与数学里的函数不是同一概念.有的书上把它定义为完成特定任务的代码集合. C语言函数的格式为:返回值数据格式  函数名(参数列表){函数体}, 函数 ...

  2. 51单片机实战教程之C语言基础(一 创建Keil Project)

    创建Keil Project 第 1 步 添加STC单片机型号及头文件到Keil 后面所有教程及示例将以STC15W4K61S4系列单片机为例,因此需先将STC单片机型号及头文件加入到Keil中.Ke ...

  3. 菜鸟教程之C语言基础(上)

    菜鸟教程之C语言基础(上) 一.前言: 前几天,在看另一个教程视频,总感觉太啰嗦,讲的东西不符合我想要的. 这里,通过菜鸟教程,看一遍文档,打一遍笔记,想通过这样学一下C语言的基础. 感谢菜鸟教程. ...

  4. 51单片机学习1:C语言基础

    1 C 语言介绍 C 语言是在 70 年代初问世的. 一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C 语言. 同时由 B.W.Kernighan 和 D.M.Ritchit 合 ...

  5. 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

    10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...

  6. iOS开发教程之OC语言-欧阳坚-专题视频课程

    iOS开发教程之OC语言-34296人已学习 课程介绍         Objective-C是扩充C的面向对象编程语言,iOS开发是用的Objective-C语言,本专题更系统的讲解Objectiv ...

  7. 51单片机实战教程(一 数据类型别名定义)

    前面已经讲了C语言基础,从此以后将进行编程实战.C数据类型名较长,编程输入不太方便. 下面编写一个定义数据类型别名的程序,并定义实现后面例程常用到的位操作及字符串操作函数. 1. 打开前面教程中创建的 ...

  8. java+mysql性能优化_Java培训实战教程之mysql优化

    Java培训实战教程之mysql优化 更新时间:2015年12月29日13时30分 来源:传智播客Java培训学院 浏览次数: 1.   mysql引擎 1.1.  引擎类型 MySQL常用的存储引擎 ...

  9. Wireshark数据抓包教程之Wireshark的基础知识

    Wireshark数据抓包教程之Wireshark的基础知识 Wireshark的基础知识 在这个网络信息时代里,计算机安全始终是一个让人揪心的问题,网络安全则有过之而无不及.Wireshark作为国 ...

  10. 步进电机应用c语言程序设计实例,51单片机调节步进电机应用C语言程序设计

    51单片机调节步进电机应用C语言程序设计 //步进电机应用C语言程序设计 #include #define uchar unsigned char sbit dula=P2^6; //数码管显示段选I ...

最新文章

  1. asp.net序列化
  2. 从0开始搭建ELK及采集日志的简单应用
  3. 程序员成长之路 java面试指导(作者说的极好要看) 静下心看
  4. 自从有了mybatis-plus代码生成器,写代码效率高了一大截
  5. Asp.net 自定义config文件读取
  6. 英雄联盟微信登录服务器怎么回事,英雄联盟微信怎么登陆 lol微信登录功能开放大区一览...
  7. 01 按指定格式读写文件出现乱码
  8. 享元模式在 Java Integer 中的应用
  9. C#中out和ref之间的区别
  10. java环境安装菜鸟教程,Java基础教程---JDK的安装和环境变量的配置
  11. 【非参数统计】概念及方法归纳比较(超适合期末复习)
  12. 怎么在另一台小米手机上云服务器,小米云服务使用手册
  13. 使用百度开发者工具 4.0 搭建专属的小程序 IDE
  14. FAQ(常见问题解答)
  15. 细胞和基因治疗产品法律监管问题及伦理的研究
  16. Google(谷歌)博客搜索中文测试版发布
  17. Transmission搭建BT下载服务器
  18. javasprit基础用法
  19. 前端js使浏览器窗口全屏与退出----浏览器全屏时 监测通过esc按键退出全屏 (退出全屏时有页面上的相关处理)
  20. 快速学习-cmd命令大全

热门文章

  1. thrift+springBoot
  2. SQL1005N 数据库别名 ECM 已存在于本地数据库目录或系统数据库目录中。
  3. php能不能用super,supersu怎么用
  4. 超实用的自我规划模型 | 进击
  5. 写口算用计算机作文600字,口算考试作文600字
  6. 03一般过去时和主谓双宾
  7. NLP 2.9 深度学习与神经网络
  8. 谁也没想到,苹果为了利润竟然如此敷衍用户!
  9. 交互体验设计优秀的产品
  10. ICPC-Tic Tac Toe