C库头文件(C99)

C库头文件(C99)

头文件及其对应描述如下
<assert.h>  //断言
<complex.h>  //复数
<ctype.h>  //字符处理
<errno.h>  // 错误类型    
<fenv.h>  //浮点环境            
<float.h>   //浮点类型            
<inttypes.h>   //整数类型格式转换              
<iso646.h>  //拼写替换        
<limits.h>  //整数类型大小
<locale.h> //本地化
<math.h>  //数学运算
<setjmp.h>  //非局部跳转    
<signal.h> //信号处理
<stdarg.h>  // 可变参数 
<stdbool.h> //布尔类型和值
<stddef.h>   //通用定义 
<stdint.h> //整数类型
<stdio.h> //输入输出
<stdlib.h>   // 常用工具
<string.h>  //字符串处理
<tgmath.h>  //普通数学类型
<time.h>  // 时间和日期
<wchar.h>   //扩展的多字节/宽字符工具
<wctype.h> // 宽字符分类和映射工具  
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

常用文件及文件内函数介绍

assert.h 
 assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行,原型定义 
 

#include <assert.h>
void assert( int expression );
 
 
  • 1
  • 2
  • 1
  • 2

assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。 
assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含assert.h的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:

#include <stdio.h>
#define NDEBUG
#include <assert.h>
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

stdlib.h 
stdlib 头文件即standard library标准库头文件。stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 
宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 
常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等


signal.h 
signal.h是C标准函数库中的信号处理部分, 定义了程序执行时如何处理不同的信号。信号用作进程间通信, 报告异常行为(如除零)、用户的一些按键组合(如同时按下Ctrl与C键,产生信号SIGINT)

#include <signal.h>
void (*signal(int sig, void (*handler)(int)))(int);
 
 
  • 1
  • 2
  • 1
  • 2

signal()用于确定以后当信号sig出现时的处理方法。如果handler的值是SIG_DFL,那么就采用实现定义的缺省行为;如果handler的值是SIG_IGN,那么就忽略该信号;否则,调用handler所指向的函数(参数为信号类型)。有效的信号包括:

信号 解释
SIGABRT 异常终止,如调用abort()
SIGFPE 算术运算出错,如除数为0或溢出
SIGILL 非法函数映象,如非法指令
SIGINT 交互式信号,如中断。
SIGSEGV 非法访问存储器,如访问不存在的内存单元。
SIGTERM 发送给本程序的终止请求信号

signal()返回信号sig原来的的handler;如果出错,则返回SIG_ERR。 
当随后出现信号sig时,就中断正在执行的操作,转而执行信号处理函数(*handler)(sig)。如果从信号处理程序中返回,则从中断的位置继续执行。 
信号的初始状态由实现定义。

#include <signal.h>
int raise(int sig); //向程序发送信号sig。如果发送不成功,就返回一个非0值。
 
 
  • 1
  • 2
  • 1
  • 2

errno.h 
errno.h 是C语言C标准函式库里的标头档,定义了通过错误码来回报错误资讯的宏。当Linux C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。


time.h 
time.h是C/C++中的日期和时间头文件。

time_t time(time_t* timer) //得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数。
clock_t clock(void)  //得到从程序启动到此次函数调用时累计的毫秒数。
struct tm *localtime(const time_t *timer) //返回一个以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代表一月) - 取值区间为[0,11] */
  int tm_year; /* 年份,其值等于实际年份减去1900 */
  int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
  int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
  int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
  };
  
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

math.h 
math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值