×
思维导图备注
嗨翻C语言
首页
下载
阅读记录
书签管理
我的书签
添加书签
移除书签
C语言工具箱
来源 [美]David Griffiths Dawn Griffiths
浏览
35
扫码
分享
2024-12-26 13:16:50
C语言工具箱
C语言工具箱
学完第3章,现在你的工具箱中又多出了小工具。关于本书提示工具条的完整列表,请见附录ii。
上一篇:
下一篇:
对本书的赞誉
《嗨翻C语言》的作者
译者序
其他图书
目录(完整版)
1 C语言入门
2 存储器和指针
2.5 字符串
3 创建小工具
4 使用多个源文件
C语言实验室 1
5 结构、联合与位字段
6 数据结构与动态存储
7 高级函数
8 静态库与动态库
C语言实验室 2
9 进程与系统调用
10 进程间通信
11 网络与套接字
12 线程
C 语言实验室 3
i 饭后甜点
ii话题汇总
引子
本书为谁而写
我们知道你在想什么
我们也知道你的大脑在想什么
我们将Head First的读者视为学习者。
元认知:思考的思考
我们做了什么
驯服你的大脑
用户须知
技术审校团队
致谢
Safari®在线图书
1 C语言入门:进入C语言的世界
C语言用来创建空间小、速度快的程序
完整的C程序长啥样?
如何运行程序?
两类命令
到目前为止的代码
用C语言算牌?
布尔运算
现在的代码
随时转向的命运列车
有时一次还不够……
所有循环的结构都相同……
……for循环让事情变得更简单
用break语句退出循环……
C语言工具箱
2 存储器和指针
C代码包含指针
深入挖掘存储器
和指针起航
试着传递指向变量的指针
使用存储器指针
怎么把字符串传给函数?
数组变量好比指针……
运行代码时,计算机在想什么
数组变量与指针又不完全相同
为什么数组从0开始
为什么指针有类型
用指针输入数据
使用scanf()时要小心
除了scanf()还可以用fgets()
字符串字面值不能更新
如果想修改字符串,就复制它
把存储器保存在大脑里
C语言工具箱
2.5 字符串
不顾一切找Frank
创建数组的数组
找到包含搜索文本的字符串
使用strstr()函数
该审查代码了
“数组的数组”和“指针的数组”
C语言工具箱
3 创建小工具
小工具可以解决大问题
程序如何工作
但没有使用文件……
可以用重定向
隆重推出标准错误
默认情况下,标准错误会发送到显示器
fprintf()打印到数据流
用fprintf()修改代码吧
灵活的小工具
切莫修改geo2json工具
一个任务对应一个工具
用管道连接输入与输出
bermuda工具
输出多个文件
创建自己的数据流
main()可以做得更多
由库代劳
C语言工具箱
4 使用多个源文件
简明数据类型指南
勿以小杯盛大物
使用类型转换把float值存进整型变量
不好啦,兼职演员来了……
代码到底怎么了
编译器不喜欢惊喜
声明与定义分离
创建第一个头文件
如果有共同特性……
把代码分成多个文件
编译的幕后花絮
共享代码需要自己的头文件
又不是造火箭……还真是!
不要重新编译所有文件
首先,把源代码编译为目标文件
记不住修改了哪些文件
用make工具自动化构建
make是如何工作的
用makefile向make描述代码
火箭升空!
C语言工具箱
C语言实验室1:Arduino
说明书:让盆栽说话
装配物理设备
代码应该做
几个有用的Arduino函数
植物监控仪下线
如果你有Mac,并且想让你的植物开口说话,可以到Head First实验室网站下载一个脚本,它可以识别串行数据流,并大声地朗读出来:
5 结构、联合与位字段
有时要传很多数据
窃窃私语
用结构创建结构化数据类型
只要把“鱼”给函数就行了
使用“.”运算符读取结构字段
结构中的结构
如何更新结构
代码克隆了乌龟
你需要结构指针
(*t).age和*t.age
同一类事物,不同数据类型
联合可以有效使用存储器空间
如何使用联合
枚举变量保存符号
有时你想控制某一位
位字段的位数可调
C语言工具箱
6 数据结构与动态存储
保存可变数量的数据
链表就是一连串的数据
在链表中插入数据
创建递归结构
用C语言创建岛屿……
在链表中插入值
用堆进行动态存储
有用有还
用malloc()申请存储器……
用strdup()修复代码
用完后释放存储器
最高机密
SPIES系统综述
软件取证:使用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:爆破彗星
经典街机游戏——爆破彗星
任务:闪避彗星并向它们开炮
Allegro
Allegro能做什么?
构建游戏
宇宙飞船
炮弹
彗星
游戏状态
用“变换”移动物体
《爆破彗星》下线
出山……
送君千里终须一别!
i 饭后甜点
#1. 运算符
#2. 预处理指令
#3. static关键字
#4. 数据类型的大小
#5. 自动化测试
#6. 再谈gcc
#7. 再谈make
#8. 开发工具
#9. 创建GUI
#10. 参考资料
ii 话题汇总
入门
存储器和指针
字符串
数据流
数据类型
多个文件
结构
联合和位字段
数据结构
动态存储
高级函数
静态库与动态库
进程间通信
网络与套接字
线程
暂无相关搜索结果!
本文档使用
Sou.st
构建
×
分享,让知识传承更久远
×
文章二维码
手机扫一扫,轻松掌上读
×
文档下载
请下载您需要的格式的文档,随时随地,享受汲取知识的乐趣!
PDF
文档
EPUB
文档
MOBI
文档
×
书签列表
×
阅读记录
阅读进度:
0.00%
(
0/0
)
重置阅读进度