Skip to content

C 标准库 - 参考手册

概述

C 标准库是 C 语言编程中不可或缺的一部分,它提供了一组预定义的函数、宏和类型定义,用于执行常见的编程任务。C 标准库由 ANSI C (C89/C90) 标准首次定义,并在后续的 C99、C11 和 C17 标准中不断扩展和完善。

标准库的历史

  • C89/C90 (ANSI C): 首个 C 语言标准,定义了 15 个标准头文件
  • C99: 新增了 6 个头文件,引入了布尔类型、复数支持等特性
  • C11: 新增了 3 个头文件,引入了线程支持、原子操作等特性
  • C17: C11 的修订版,主要是错误修正和澄清

标准库头文件列表

C89/C90 标准头文件

  1. <assert.h> - 诊断程序断言
  2. <ctype.h> - 字符处理函数
  3. <errno.h> - 错误代码
  4. <float.h> - 浮点数限制
  5. <limits.h> - 整数限制
  6. <locale.h> - 本地化
  7. <math.h> - 数学函数
  8. <setjmp.h> - 非本地跳转
  9. <signal.h> - 信号处理
  10. <stdarg.h> - 可变参数
  11. <stddef.h> - 标准定义
  12. <stdio.h> - 输入/输出
  13. <stdlib.h> - 通用工具函数
  14. <string.h> - 字符串处理
  15. <time.h> - 时间和日期函数

C99 新增头文件

  1. <stdbool.h> - 布尔类型和值
  2. <stdint.h> - 标准整数类型
  3. <inttypes.h> - 整数类型格式转换
  4. <complex.h> - 复数运算
  5. <tgmath.h> - 类型泛型数学
  6. <fenv.h> - 浮点环境

C11 新增头文件

  1. <stdalign.h> - 对齐
  2. <stdatomic.h> - 原子类型和操作
  3. <stdnoreturn.h> - _Noreturn 类型

标准库的主要功能分类

1. 输入/输出 (I/O)

  • 标准输入/输出流
  • 文件操作
  • 格式化输入/输出

2. 字符串处理

  • 字符串复制、连接、比较
  • 字符串搜索
  • 字符串转换

3. 内存管理

  • 动态内存分配
  • 内存操作

4. 数学运算

  • 基本数学函数
  • 三角函数
  • 指数和对数函数

5. 时间和日期

  • 时间获取和转换
  • 时间格式化

6. 工具函数

  • 类型转换
  • 随机数生成
  • 进程控制
  • 搜索和排序

7. 诊断和错误处理

  • 断言
  • 错误代码
  • 信号处理

使用标准库

包含头文件

要使用标准库中的函数,需要包含相应的头文件:

c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

链接标准库

大多数现代编译器会自动链接标准库,但在某些情况下可能需要手动指定:

bash
gcc program.c -o program -lm

标准库的最佳实践

  1. 始终包含必要的头文件 - 确保所有使用的函数都有相应的头文件声明
  2. 检查返回值 - 许多标准库函数会返回错误代码,应该检查这些返回值
  3. 使用安全的函数 - 优先使用带长度限制的函数,如 snprintf 而不是 sprintf
  4. 处理内存分配失败 - 检查 malloc 等函数的返回值是否为 NULL
  5. 释放分配的内存 - 使用 free 释放动态分配的内存
  6. 关闭打开的文件 - 使用 fclose 关闭打开的文件
  7. 避免未定义行为 - 遵循标准库函数的使用规范

标准库的兼容性

C 标准库在不同平台和编译器之间具有很高的兼容性,但仍需注意:

  • 不同编译器可能提供额外的非标准扩展
  • 某些函数的行为可能因平台而异
  • 新标准中的函数可能在旧编译器中不可用

参考资源

  • ISO/IEC 9899 - C 语言标准官方文档
  • cppreference.com - 在线的 C/C++ 标准库参考
  • man pages - Linux/Unix 系统上的手册页
  • MSDN - Microsoft 的 C 运行时库文档

总结

C 标准库是 C 语言编程的基础,掌握标准库的使用对于编写高效、可移植的 C 程序至关重要。本参考手册将详细介绍每个标准库头文件的功能和使用方法,帮助您充分利用 C 标准库的强大功能。