菜单
首页
文章
资源
资源分享
UI 界面
杂谈
PDF 电子书
HTML 模板
话题
手册
知识库
更多
所有标签
所有用户
微信小程序专属定制开发
捐赠本站
客户端下载
Web 网站建设网页前端开发
银行卡发卡银行查询
Language codes / 语言代码表
国家代号 CountryCode 与区号
代码广场
在线工具
超级导航
{{ userInfo.display_name }}
写文章
发话题
草稿
我的主页
我的文章
我的评论
我的话题
我的回复
我的收藏集
用户中心
资料设置
退出
登录
返回介绍
对 Head First 丛书的赞誉
对本书的赞誉
嗨翻 C 语言 的作者
译者序
目录(完整版)
引子
本书为谁而写
我们知道你在想什么
元认知:思考的思考
驯服你的大脑
用户须知
技术审校团队
致谢
1 C 语言入门:进入 C 语言的世界
C 语言用来创建空间小、速度快的程序
完整的 C 程序长啥样?
如何运行程序?
两类命令
用 C 语言算牌?
布尔运算
现在的代码
随时转向的命运列车
有时一次还不够……
用 break 语句退出循环……
C 语言工具箱
2 存储器和指针
C 代码包含指针
深入挖掘存储器
和指针起航
试着传递指向变量的指针
使用存储器指针
怎么把字符串传给函数?
数组变量好比指针……
运行代码时,计算机在想什么
数组变量与指针又不完全相同
为什么数组从 0 开始
为什么指针有类型
用指针输入数据
使用 scanf() 时要小心
除了 scanf() 还可以用 fgets()
字符串字面值不能更新
如果想修改字符串,就复制它
把存储器保存在大脑里
C 语言工具箱
2.5 字符串
不顾一切找 Frank
创建数组的数组
找到包含搜索文本的字符串
使用 strstr() 函数
该审查代码了
数组的数组 和 指针的数组
C 语言工具箱
3 创建小工具
小工具可以解决大问题
程序如何工作
但没有使用文件……
可以用重定向
隆重推出标准错误
默认情况下,标准错误会发送到显示器
fprintf() 打印到数据流
用 fprintf() 修改代码吧
灵活的小工具
切莫修改 geo2json 工具
一个任务对应一个工具
用管道连接输入与输出
bermuda 工具
输出多个文件
创建自己的数据流
main() 可以做得更多
由库代劳
C 语言工具箱
4 使用多个源文件
简明数据类型指南
勿以小杯盛大物
不好啦,兼职演员来了……
代码到底怎么了
编译器不喜欢惊喜
声明与定义分离
创建第一个头文件
如果有共同特性……
把代码分成多个文件
编译的幕后花絮
共享代码需要自己的头文件
又不是造火箭……还真是!
不要重新编译所有文件
首先,把源代码编译为目标文件
记不住修改了哪些文件
用 make 工具自动化构建
make 是如何工作的
用 makefile 向 make 描述代码
火箭升空!
C 语言工具箱
C 语言实验室 1:Arduino
5 结构、联合与位字段
有时要传很多数据
窃窃私语
用结构创建结构化数据类型
只要把“鱼”给函数就行了
使用“.”运算符读取结构字段
结构中的结构
如何更新结构
代码克隆了乌龟
你需要结构指针
(
t).age 和
t.age
同一类事物,不同数据类型
联合可以有效使用存储器空间
如何使用联合
枚举变量保存符号
有时你想控制某一位
位字段的位数可调
C 语言工具箱
6 数据结构与动态存储
保存可变数量的数据
链表就是一连串的数据
在链表中插入数据
创建递归结构
用 C 语言创建岛屿……
在链表中插入值
用堆进行动态存储
有用有还
用 malloc() 申请存储器……
用 strdup() 修复代码
用完后释放存储器
软件取证:使用 valgrind
反复使用 valgrind,收集更多证据
推敲证据
最终审判
C 语言工具箱
7 高级函数
寻找真命天子……
把代码传给函数
把函数名告诉 find()
函数名是指向函数的指针 1……
……没有函数类型
如何创建函数指针
用 C 标准库排序
用函数指针设置顺序
分手信自动生成器
创建函数指针数组
让函数能伸能缩
C 语言工具箱
8 静态库与动态库
值得信赖的代码
尖括号代表标准头文件
共享.h 头文件
用完整路径名共享.o 目标文件
存档中包含多个.o 文件
用 ar 命令创建存档
最后编译其他程序
Head First 健身房全球化战略
计算卡路里
事情可没那么简单……
程序由碎片组成……
在运行时动态链接
.a 能在运行时链接吗?
首先,创建目标文件
一种平台一个叫法
C 语言工具箱
C 语言实验室 2:OpenCV
9 进程与系统调用
操作系统热线电话
黑客入侵了……
岂止是安全问题
exec() 给你更多控制权
exec() 函数有很多
数组函数:execv()、execvp()、execve()
传递环境变量
大多数系统调用以相同方式出错
用 RSS 读新闻
exec() 是程序中最后一行代码
用 fork()+exec() 运行子进程
C 语言工具箱
10 进程间通信
输入输出重定向
进程内部一瞥
重定向即替换数据流
fileno() 返回描述符号
有时需要等待……
家书抵万金
用管道连接进程
案例研究:在浏览器中打开新闻
子进程
父进程
在浏览器中打开网页
进程之死
捕捉信号然后运行自己的代码
用 sigaction() 来注册 sigaction
用 kill 发送信号
打电话叫程序起床
C 语言工具箱
11 网络与套接字
互联网 knock-knock 服务器
knock-knock 服务器概述
BLAB:服务器连接网络四部曲
套接字不是传统意义上的数据流
服务器有时不能正常启动
妈妈说要检查错误
从客户端读取数据
一次只能服务一个人
为每个客户端 fork() 一个子进程
自己动手写网络客户端
主动权在客户端手中
创建 IP 地址套接字
getaddrinfo() 获取域名的地址
C 语言工具箱
12 线程
任务是串行的……还是……
……进程不是唯一答案
普通进程一次只做一件事
多雇几名员工:使用线程
如何创建线程?
用 pthread_create 创建线程
线程不安全
增设红绿灯
用互斥锁来管理交通
C 语言工具箱
C 语言实验室 3:爆破彗星
i 饭后甜点
#1. 运算符
#2. 预处理指令
#3. static 关键字
#4. 数据类型的大小
#5. 自动化测试
#6. 再谈 gcc
#7. 再谈 make
#8. 开发工具
#9. 创建 GUI
#10. 参考资料
ii 话题汇总
文江博客
开发文档
嗨翻 C 语言
文章详情
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
程序如何工作
发布于
2024-10-10 23:21:24
字数 92
浏览 0
评论 0
收藏 0
收藏 0
分享到微信
分享到QQ
分享到微博
如果你对这篇内容有疑问,欢迎到本站
社区
发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
需要
登录
才能够评论, 你可以免费
注册
一个本站的账号。
发布评论
列表为空,暂无数据
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
确认绑定
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的
隐私政策
了解更多相关信息。 单击
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
取消
接受
原文
×
发布评论