C标准库

今天总结一下C语言标准库。

C语言标准库(C89)包含15个头文件,新的C99以及C11又定义了一些其他的库,这里略过不说,常用的如下,

- 包含assert()函数,这个函数现在还有人用吗?至少我这几年没有见人用了,因为它会直接导致进程退出,而且只会记下当前的调用栈,只能发现问题而不能帮助解决问题,在现实中使用日志系统或者直接用标准输出记录问题会帮助更大。

- 字符测试函数,可能有很多人喜欢自己实现类似islower()或者tolower()的函数,不过这个库里的函数在某些场景真的很有用。不如isalnum()检查是不是字母或者数字,isprint()检查是不是可打印的字符,还有isspace()可以检查是不是白空格。

- 很多库函数或者系统函数会把错误代码写入errno. 记录错误日志时,要检查一下出错的调用是否记录errno。

- 数学运算的库,常用的如幂运算pow()和余数运算fmod().

- 如果函数中使用了可变参数,需要用这个库来解析这些参数。

- 这可能是C语言最常用的头文件了吧,定义了一些文件操作的方法,比如打开文件fopen(),和关闭文件fclose(),以及输出格式化字符串printf(), sprintf()和snprintf()。注意snprintf()是C99标准定义的函数,有些老的编译器不支持。

- 定义了字符串转换成数字的函数如atof(), atoi(),以及内存分配和释放的函数malloc(), calloc()等。

- 定义了字符数组的操作,如strcpy(),strcmp()等。还有内存复制的操作如memcpy(),memmove()等。

还有一些不太常用的头文件,比如 .

你可能感兴趣的:(C标准库)