C语言这些常用的标准库(头文件),你不得不知道...

有很多工程师喜欢自己封装一些标准库已有的函数,其实自己封装的函数,并不一定比标准库好,有时候反而代码更冗余,且有bug。

下面小编就来分享一下C语言常见的一些标准库。

标准头文件包括:

<asset.h><ctype.h><errno.h><float.h><limits.h>

<locale.h><math.h><stdio.h><signal.h><time.h>

<stddef.h><stdlib.h><string.h><stdarg.h><setjmp.h>

一、标准定义(<stddef.h>)

文件<stddef.h>里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,<stddef.h>都会被自动包含进来。

这个文件里定义:

● 类型size_t(sizeof运算符的结果类型,是某个无符号整型);

● 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);

● 类型wchar_t(宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的字符集的所有编码值。这里还保证空字符的编码值为0);

● 符号常量NULL(空指针值);

● 宏offsetot (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构成员名。

offsetot(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>)

文件打开和关闭:

 

字符输入输出:

 

getc和putc与这两个函数类似,但通过宏定义实现。通常有下面定义:

 

格式化输入输出:

 

行式输入输出:

 

直接输入输出:

 

四、数学函数(<math.h>)

1.三角函数:

 

2.指数和对数函数:

 

3.其他函数:

 

注:所有上面未给出类型特征的函数都取一个参数,其参数与返回值都是double类型。

下面函数返回双精度值(包括函数ceil和floor)。在下表里,除其中有特别说明的参数之外,所有函数的其他参数都是double类型。

函数原型意义解释:

 

五、字符处理函数(<ctype.h>)

见下表:

 

注:条件成立时这些函数返回非0值。最后两个转换函数对于非字母参数返回原字符。

六、字符串函数(<string.h>)

1.字符串函数

所有字符串函数列在下表里,函数描述采用如下约定:s、t表示 (char *)类型的参数,cs、ct表示(const char*)类型的参数(它们都应表示字符串)。

n表示size_t类型的参数(size_t是一个无符号的整数类型),c是整型参数(在函数里转换到char):

函数原型意义解释:

 

2.存储区操作

<string.h>还有一组字符数组操作函数(存储区操作函数),名字都以mem开头,以某种高效方式实现。

在下面原型中,参数s和t的类型是(void *),cs和ct的类型是(const void *),n的类型是size_t,c的类型是int(转换为unsigned char)。

函数原型意义解释:

 

七、功能函数(<stdlib.h>)

1.随机数函数:

函数原型意义解释

 

2.动态存储分配函数:

函数原型意义解释

 

3.几个整数函数

几个简单的整数函数见下表,div_t和ldiv_t是两个预定义结构类型,用于存放整除时得到的商和余数。

div_t类型的成分是int类型的quot和rem,ldiv_t类型的成分是long类型的quot和rem。

函数原型意义解释

 

4.数值转换

函数原型意义解释

 

5.执行控制

1)非正常终止函数abort。

原型是:

 

2)正常终止函数exit。

原型是:

 

导致程序按正常方式立即终止。status作为送给执行环境的出口值,0表示成功结束,两个可用的常数为EXIT_SUCCESS,EXIT_FAILURE。

3)正常终止注册函数atexit。

原型是:

 

可用本函数把一些函数注册为结束动作。被注册函数应当是无参无返回值的函数。注册正常完成时atexit返回值0,否则返回非零值。

6.与执行环境交互

1)向执行环境传送命令的函数system。

原型是:

 

把串s传递给程序的执行环境要求作为系统命令执行。如以NULL为参数调用,函数返回非0表示环境里有命令解释器。如果s不是NULL,返回值由实现确定。

2)访问执行环境的函数getenv。

原型是:

 

从执行环境中取回与字符串s相关联的环境串。如果找不到就返回NULL。本函数的具体结果由实现确定。在许多执行环境里,可以用这个函数去查看“环境变量”的值。

7.常用函数bsearch和qsort

1)二分法查找函数bsearch:

 

函数指针参数cmp的实参应是一个与字符串比较函数strcmp类似的函数,确定排序的顺序,当第一个参数keyval比第二个参数datum大、相等或小时分别返回正、零或负值。

2)快速排序函数qsort:

qsort对于比较函数cmp的要求与bsearch一样。设有数组base[0],...,base[n-1],元素大小为size。用qsort可以把这个数组的元素按cmp确定的上升顺序重新排列。

 
最后,不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

——【值得关注】我的 C/C++编程学习交流俱乐部!——

涉及:C语言、C++、windows编程、网络编程、QT图形界面开发、Linux编程、游戏编程、数据结构与算以及数据库......

(0)

相关推荐

  • C语言系列

    C语言系列_9:函数指针,函数指针数组和回调函数 原创快乐江湖啊2021-03-05 09:05:28 (5)函数指针 A:什么是函数指针 数组指针是指向数组的,函数指针就是指向函数的,也就是函数也是 ...

  • C语言常用标准库解读

    有很多工程师喜欢自己封装一些标准库已有的函数,其实自己封装的函数,并不一定比标准库好,有时候反而代码更冗余,且有bug.下面就来分享一下C语言常见的一些标准库.标准头文件包括:<asset.h& ...

  • python3常用标准库

    python3常用标准库 趁着有时间,把一些我用过的常用标准库进行整理和复习. time 用法 说明 time.time() 返回时间戳(从1970年1月1日00:00:00开始计算) time.lo ...

  • python语言线程标准库threading.local源码解读

    本段源码可以学习的地方: 1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建: 2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls ...

  • Python语言学习:Python常用自带库(imageio、pickle)简介、使用方法之详细攻略

    Python语言学习:Python常用自带库(imageio.pickle)简介.使用方法之详细攻略 imageio简介及其常见使用方法 IMAIO是一个Python库,它提供了一个简单的接口来读取和 ...

  • 诚之和:如何使用Go语言JSON 标准库

    本篇内容主要讲解"如何使用Go语言JSON 标准库",感兴趣的朋友不妨来看看.本文介绍的方法操作简单快捷,实用性强.下面就让小编来带大家学习"如何使用Go语言JSON 标 ...

  • 用Python标准库turtle画一头金牛,祝您新年牛气冲天!(附源码)

    今年是牛年,祝大家新年牛气冲天!嗨皮牛Year! 前几天在百度图片里下载了一张金牛的图片,就是封面的这张.想着用Python标准库turtle肯定可以画出这张图,所以说干就干,花两天时间实现了. 画图 ...

  • Python标准库模块之heapq

    该模块提供了堆排序算法的实现.堆是二叉树,最大堆中父节点大于或等于两个子节点,最小堆父节点小于或等于两个子节点. 创建堆 heapq有两种方式创建堆, 一种是使用一个空列表,然后使用heapq.hea ...

  • C/C++标准库之转换UTC时间到local本地时间详解

    前言 UTC 时间DateTime.UtcNow 和 系统本地时间 DateTime.Now 相差8个时区 ,美国本地时间和北京时间相差15个时区: 美国,而一般使用UTC时间方便统一各地区时间差异. ...

  • 如何避免C标准库缓冲区溢出

    C中大多数缓冲区溢出问题可以直接追溯到标准 C 库.最有害的罪魁祸首是不进行自变量检查的.有问题的字符串操作strcpy.strcat.sprintf 和 gets. 大部分程序员仍然会使用这些函数, ...