跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C 语言库函数
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Note|本节内容适用于已完成[[C语言基础语法]]学习的读者,建议掌握[[变量与数据类型]]、[[流程控制]]后再学习函数相关概念。}} = C语言库函数概述 = '''C语言库函数'''(Library Functions)是由C标准库(如glibc、MSVCRT等)及第三方库提供的预编译函数集合,涵盖输入输出、字符串处理、数学运算等常见操作。这些函数遵循ISO C标准规范,通过头文件(.h)声明,极大提升了代码复用性和开发效率。 == 核心特点 == * '''标准化''':ANSI C定义了标准库函数(如<stdio.h>, <math.h>) * '''跨平台性''':在不同操作系统/编译器下行为一致 * '''性能优化''':底层通常由汇编语言实现 * '''模块化''':按功能分类到不同头文件 = 主要库函数分类 = 下表列出C标准库的核心头文件及典型函数: {| class="wikitable" ! 头文件 !! 功能描述 !! 示例函数 |- | <code><stdio.h></code> || 标准输入输出 || <code>printf(), scanf(), fopen()</code> |- | <code><stdlib.h></code> || 内存管理/类型转换 || <code>malloc(), atoi(), rand()</code> |- | <code><string.h></code> || 字符串操作 || <code>strcpy(), strlen(), strcmp()</code> |- | <code><math.h></code> || 数学运算 || <code>sqrt(), sin(), pow()</code> |- | <code><time.h></code> || 时间处理 || <code>time(), clock(), strftime()</code> |} = 详细函数解析 = == 输入输出函数(stdio.h) == === printf() 格式化输出 === <syntaxhighlight lang="c"> #include <stdio.h> int main() { int age = 25; printf("Name: %s\nAge: %d\nScore: %.2f\n", "Alice", age, 95.5f); return 0; } </syntaxhighlight> '''输出:''' <pre> Name: Alice Age: 25 Score: 95.50 </pre> '''格式说明符:''' * <code>%d</code> - 十进制整数 * <code>%f</code> - 浮点数(<code>%.2f</code>保留两位小数) * <code>%s</code> - 字符串 == 字符串函数(string.h) == === 内存安全操作示例 === <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> int main() { char src[20] = "Hello"; char dest[20]; // 安全拷贝(避免缓冲区溢出) strncpy(dest, src, sizeof(dest)-1); dest[sizeof(dest)-1] = '\0'; printf("Length: %zu\n", strlen(dest)); return 0; } </syntaxhighlight> == 数学函数(math.h) == === 三角函数计算 === <mermaid> graph LR A[输入角度值] --> B[转换为弧度] B --> C[调用sin/cos/tan] C --> D[输出结果] </mermaid> <syntaxhighlight lang="c"> #include <math.h> #include <stdio.h> #define PI 3.14159265 int main() { double angle = 45.0; double radians = angle * (PI / 180.0); printf("sin(%.2f°) = %.4f\n", angle, sin(radians)); return 0; } </syntaxhighlight> = 高级应用技巧 = == 函数指针与库函数 == 通过函数指针动态调用库函数: <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> typedef int (*compare_func)(const char*, const char*); void sort_strings(char **arr, int n, compare_func cmp) { // 使用指定的比较函数排序 } int main() { char *names[] = {"Bob", "Alice", "Charlie"}; sort_strings(names, 3, strcmp); return 0; } </syntaxhighlight> == 错误处理机制 == 标准库通过以下方式报告错误: * 返回值(如<code>fopen()</code>返回NULL) * <code>errno</code>全局变量(需包含<code><errno.h></code>) * <code>perror()</code>函数输出错误描述 = 性能考量 = {{Warning|频繁调用某些库函数(如<code>strlen()</code>)可能影响性能,应在循环外预先计算}} '''时间复杂度对比:''' * <code>memcpy()</code>:O(n) * <code>qsort()</code>:O(n log n) * <code>bsearch()</code>:O(log n) = 扩展阅读 = * [[C语言内存管理]] * [[文件操作详解]] * [[多线程编程中的库函数使用]] {{Exercise|尝试实现一个简化版的<code>printf()</code>函数,至少支持<code>%d</code>和<code>%s</code>格式}} [[Category:编程语言]] [[Category:C]] [[Category:C 语言函数]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Exercise
(
编辑
)
模板:Mbox
(
编辑
)
模板:Note
(
编辑
)
模板:Warning
(
编辑
)
模块:Arguments
(
编辑
)
模块:Message box
(
编辑
)
模块:Message box/ambox.css
(
编辑
)
模块:Message box/configuration
(
编辑
)
模块:Yesno
(
编辑
)