概述
为什么要理解C的函数库?
因为理解了C的函数库,能够使我们调用函数更方便,加强对C语言的理解。(就是不知道,就是要背,其实是要考。)
但是,有的时候合理的使用C自带的函数,会方便我们很多,例如参考摩尔质量的计算这个算法题,简单的实现方法没有用函数库,那么就会写较多的代码,而且存在问题,能否修复,可以,但是还得堆代码,在考试或者其他的时候,时间上不适用的。复杂一点的方法,就是使用函数库,但是较为难理解。
#include <assert.h>
assert函数库,主要是用于检查,例如可以检查malloc分配内存失败后,指针是否为空。
函数原型说明 | 功能 | 返回值 |
assert(p != NULL); | malloc分配内存失败的时候返回NULL |
#include <errno.h>
errno.h函数库,主要是用于
#include <math.h>
math函数库就是,如名字一样就是用于计算数学相关,例如绝对值等。
函数原型说明 | 功能 | 返回值 |
int abs( int x) | 求整数x的绝对值 | 计算结果 |
double fabs(double x) | 求双精度实数x的绝对值 | 计算结果 |
#include <ctype.h>
ctype函数库,主要检查大小写,字母,数字等,结果总是返回布尔型。
函数原型说明 | 功能 | 返回值 |
int isalnum(int ch) | 检查ch是否为字母或数字 | 是,返回1;否则返回0 |
int isalpha(int ch) | 检查ch是否为字母 | 是,返回1;否则返回0 |
#include <string.h>
string函数库,如其名字一样,主要是用于对字符串的一系列操作。
函数原型说明 | 功能 | 返回值 |
char *strcat(char *s1,char *s2) | 把字符串s2接到s1后面 | s1所指地址 |
char *strchr(char *s,int ch) | 在s所指字符串中,找出第一次出现字符ch的位置 | 返回找到的字符的地址,找不到返回NULL |
#include <stdio.h>
stdio函数库是很常用的了,全称standard input output.header,主要是针对输入输出相关的操作都要使用,例如scanf()等。
函数原型说明 | 功能 | 返回值 |
void clearer(FILE *fp) | 清除与文件指针fp有关的所有出错信息 | 无 |
int fclose(FILE *fp) | 关闭fp所指的文件,释放文件缓冲区 | 出错返回非0,否则返回0 |
#include <stdlib.h>
stdlib函数库,包含有比较常见的malloc,free等,主要是最内存做出操作的。
函数原型说明 | 功能 | 返回值 |
void *calloc(unsigned n,unsigned size) | 分配n个数据项的内存空间,每个数据项的大小为size个字节 | 分配内存单元的起始地址;如不成功,返回0 |
void *free(void *p) | 释放p所指的内存区 | 无 |
void *malloc(unsigned size) | 分配size个字节的存储空间 | 分配内存空间的地址;如不成功,返回0 |