前言
C 语言是一门通用的、抽象的程序设计语言,广泛运用于底层开发, 诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)和肯·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。C语言是一门结构性语言,可分模块编写程序并调用程序,同时C语言也拥有自己的标准库,作为一C语言学习者你可否了解C语言的标准库呢?C语言标准库中包含着<assert.h>,<ctype.h>,<errno.h>。<float.h>,<limits.h>,<locale.h>,<math.h>, <setjmp.h>,<signal.h>, <stdarg.h>, <stddef.h>,<stdio.h>,<stdlib.h>和<string.h>,下面简单的介绍其中三种:<assert.h>,<errno.h>和<time.h>
一、C 标准库 - <assert.h>
C 标准库的 assert.h头文件提供了一个名为 assert 的宏,assert() 是一个调试程序时经常使用的宏,它通常用于验证程序做出的假设,当程序中出现了错误,非法的数据,则会终止程序以免造成更大的严重后果,同时也便于查找错误。
二、C 标准库 - <errno.h>
C 标准库的中的errno.h 头文件定义了整数变量 errno,它主要是通过系统调用来设置的,在错误事件中的某些库函数表明了什么发生了错误。头文件errno.h在程序启动时,j将errno 设置为零。
其中主要有三种用法:
1.C 库宏 extern int errno 主要是通过系统调用设置的函数,在错误事件中的某些库函数表明了什么发生了错误。
2.C 库宏 EDOM 表示一个域错误,它在输入参数超出数学函数定义的域时发生,在errno 中将其设置为 EDOM。声明:#define EDOM A
3.C 库宏 ERANGE 表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,在errno中将其 设置为 ERANGE。声明:#define ERANGE A
三、C 标准库 - <time.h>
C标准库中的time.h 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数
1.库变量:
变量 | 描述 |
size_t | 无符号整数类型,是sizeof关键字的结果 |
clock_t | 适用存储器时间的类型 |
time_t is | 适用于存储日历时间类型 |
struct tm | 适用于保存时间和日期的结构 |
2.tm结构的定义:
struct tm{
int tm_sec; //秒,范围从0到59
int tm_min; //分,范围从0到59
int tm_hour; //小时,范围是0到23
int tm_mday; //一月中的第几天,范围从1到31
int tm_mon; //月,范围从0到11
int tm_year; //自1900年起的年数
int tm_wday; //一周中第几天,范围是从0到6
int tm_yday; //一年中的第几天,范围是从0到365
int tm_isdst; //夏令时
};
3.头文件time.h中的定义宏:
宏 | 描述 |
NULL | 空指针常量 |
CLOCKS_PER_SEC | 表示每秒的处理器时钟个数 |
4.库函数描述:
函数 | 描述 |
asctime()函数 | 表示返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。 |
clock()函数 | 表示从返回程序执行起,处理器时钟所使用的时间,其中为了获取 CPU 所使用的秒数,您需要除以 CLOCKS_PER_SEC。 |
ctime()函数 | 表示返回一个表示当地时间的字符串,当地时间是基于参数 timer。 |
difftime() 函数 | 表示返回不同的时间差 |
gmtime() 函数 | 表示格林尼治时间 |
localtime() 函数 | 用于表示本地时区 |
mktime() 函数 | 把()所指的结构转换为自1970年1月1日以来持续时间的秒数,发生错误是返回-1 |
strftime() 函数 | 如 size_t strfime(char *s,size_t maxsize,const char*ret,const struct tm *timeptr),根据ret中定义的格式化规则,格式化结构timeptr表示时间,并将其存储于s中 |
time() 函数 | 计算当前日历时间,并将其编码成()中格式 |
5.asctime()函数的运用:
#include <stdio.h>
#include <string.h>
#include <time.h>
int main()
{
struct tm t;
t.tm_sec = 23;
t.tm_min = 8;
t.tm_hour = 5;
t.tm_mday = 20;
t.tm_mon = 6;
t.tm_year = 2000;
t.tm_wday = 25;
puts(asctime(&t));
return(0);
}
6.结果演示:
总结
在学习C语言中,我们不仅仅会编写简单的程序,并且学会运用C标准库中的函数,以帮助自己提高代码的运算效率。