51单片机实战教程之C语言基础(十 Keil C51函数库)

您所在的位置:网站首页 常用的c语言库函数 51单片机实战教程之C语言基础(十 Keil C51函数库)

51单片机实战教程之C语言基础(十 Keil C51函数库)

2023-09-19 01:08| 来源: 网络整理| 查看: 265

         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的绝对值 #endif extern 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.H Standard 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_T typedef 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 REGPARMS extern 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_DEFINED extern 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_ xdata extern 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_T typedef 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.H Prototypes 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.H String 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_T typedef 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.H Intrinsic 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 */ #endif extern 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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3