- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[经济学]Linux C开发基础
Linux C程序开发基础 吴士力 e-mail: wsl.wushili@ GCC GCC介绍 GCC(GNU Compiler Collection )与gcc GCC编程C程序过程 1. 预处理 编译(词法分析、语法分析、语义分析) 汇编 链接(动态链接、静态链接) Linux数据结构基础 数据结构 数据结构与程序开发的关系 数据结构是分析内核的一个切入点 (进程控制块、页表、队列、中断向量等) 基本数据逻辑结构 集合 线性表(如顺序表、栈、队列) 树(如二叉树、多叉树) 图(如有向图、无向图、完全图) Linux数据结构实现 队列的实现 队列 链表实现代码分析 栈链表实现实验 Linux 工程C编程规范 工程编程规范的意义 要用发展的眼光看待任何事物 软件危机产生的表象是小规模?大规模 可读性、易修改性直接影响健壮性、调试效率 好文章+好书法 编程规范的主要内容 文件结构、代码版式、命名规则、内存使用 Linux 工程C编程规范 文件结构 (1)版权信息。 (2)文件名称,摘要。 (3)当前版本号,作者/修改者,完成日期。 /* * Copyright (c) 2010,江苏优奈特信息科技有限公司 * * 文件名称:text.c * 摘要:简要描述本文件的功能 * * 当前版本:1.1 * 作者:输入作者(或修改者)名字 * 完成日期:2010年7月20日 * * / Linux 工程C编程规范 头文件的内容 头文件中申明常量、全局变量和函数 头文件的作用 (1)通过头文件来调用库。在很多场合,源代码不向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。 (2)头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误。 Linux 工程C编程规范 代码版式 空行(分隔程序段落) 代码行(一行代码只做一件事) 逻辑对齐({ }) 注释 Linux 工程C编程规范 命名规则 1.望文知意(一般用英语单词,要求简练) 2.命名风格与操作系统开发环境一致(如大小写) 3.嵌入式领域常把变量的空间大小接在变量名后(char name8、int age16) Linux 工程C编程规范 内存使用 1.内存分配未成功,却使用了它。 通过if(p!=NULL)检查 2.内存分配虽然成功,但尚未初始化就使用 误以为内存初始值为0,其实是随机值 3.忘记了释放内存,造成内存泄露 malloc/free成对使用 4.释放内存后,没有将指针设置为NULL,产生了“野指针” Make工程管理器 工程管理器的作用 提高工程的编译效率 工程管理器的工作原理 根据Makefile对工程进行编译、生成目标文件 根据时间戳判断需要编译或生成的文件 Makefile 文件 target file :dependency file command 示例 test : a.o b.o cc -o test a.o b.o a.o : a.c b.h cc -c a.c b.o : b.c cc -c b.c Makefile的基本语法 变量 变量用于代替工程中需要编译的文件名,减少冗余、避免修改不一致 变量语法:$(变量名) 示例 obj = a.o b.o test : $(obj) cc -o test $(obj) a.o : a.c b.h cc -c a.c b.o : b.c cc -c b.c 变量赋值 “=”、 “:=” 、“+=” 、“?=” (内核中常用) Makefile的基本语法 自动推导 默认每个目标文件都有一个与之对应的依赖文件以及编译规则命令 示例 obj = a.o b.o test : $(obj) cc -o test $(obj) a.o : b.h Makefile的基本语法 伪目标 只执行规则命令,而不用创建实际的目标文件 示例 obj = a.o b.o .PHONY : all all : test $(obj) test : $(obj) cc –o test $(o
您可能关注的文档
最近下载
- GB+16423-2020金属非金属矿山安全规程.docx VIP
- 2024《拔高训练之50类题型精练》九年级物理全一册.pdf
- 罗道病课件文档.ppt VIP
- T∕CACM 1021.89-2018 中药材商品规格等级 鸡内金.docx VIP
- 人教版(2024)九年级全一册物理全册教案.docx
- T/BGEA001-2019 预拌流态固化土填筑工程技术标准.pdf VIP
- (2025秋新版)二年级语文上册全册教案.pdf
- 涉诈风险账户审查表.doc VIP
- CATIA自由曲面教程教程分析.doc
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试历年参考题库附带答案详解.docx
文档评论(0)