ImageVerifierCode 换一换
格式:PPTX , 页数:24 ,大小:64.50KB ,
资源ID:1387939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1387939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C程序生成过程.pptx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C程序生成过程.pptx

1、C+程序生成过程,高嵩,程序生成的三个步骤,编译预处理#include文件引入,宏展开,预编译指令处理,模板展开分别编译每个编译单位(经过预处理的文件)独立的进行编译链接保证每个编译单位中符号意义的一致,编译预处理,纯文本操作,从源文件到编译单元,头文件,编译器不区分头文件与普通程序文件,只是提供了#include预编译指令头文件通过#include预编译指令引入#include”headFile.h”使用头文件的全文替换#include所在行STL头文件使用#include的形式,xxxx是否是一个文件由实现定义头文件保护经典的#ifndef#pragma once(实现定义,vc/gcc/

2、icc均支持),宏与模板,#define简单的替换,尽量避免使用模板也是宏的一种,在预处理阶段展开使用宏与模板时,宏与模板的全部信息必须位于当前文件中(单次扫描编译),编译,单次扫描编译器从编译单元生成目标码文件,单次扫描编译,编译器每次只处理一个文件,每个文件只处理一次。编译一个文件时不能获得其他文件的信息若需要使用其他编译单元【定义】的符号,必须在本编译单元中【声明】,定义与声明,一般来说,实际分配空间的就是定义,否则就是声明类?模板?,头文件的注意事项,可以有一般只包含各类声明类与模板可以在头文件中定义单一定义规则(One-Definition Rule,ODR)可以包含const常量/

3、inline函数的定义不能有绝不能有数据或函数的定义不应包含using操作不应包含#define,编译工作,为当前编译单元中定义的数据分配地址空间将当前编译单元中的函数转为机器码,外部符号的地址会暂时空出来等待链接时处理产生三个表,与链接相关的三个表,未解决符号表(unresolved symbol table)导出符号表(export symbol table)地址重定向表(address redirect table),链接,将各个编译单元目标代码组织起来,链接原理,在所有编译单元中,每个符号必须恰好只【定义】一次(ODR标准的类与模板定义除外),可以【声明】多次。链接即确定不同编译单元中

4、符号的引用关系,确定具体地址,并计算偏移量,外部链接与内部链接,一个符号若可以在其他编译单元中使用,称为具有【外部链接】,否则称为【内部链接】const数据/inline函数具有内部链接(具体参考标准与具体实现)外部链接实际就是将符号加入导出符号表可以使用extern强制const数据外部链接,链接步骤,确定各个目标文件在最终可执行文件里的位置对目标文件中记录的符号地址进行重定向查找导出符号表,在未解决符号表记录的所有位置上填写实际地址将所有目标文件写到最终可执行文件的各个位置上,常见错误,无法解析的外部符号(unresolved external link)符号重定义(duplicated

5、external symbols),非法的例子,/file1.cppint a;int b=1;extern int c;/file2.cppint a;extern double b;extern int c;,问题,为什么前面讲头文件中一般只包含声明而不包含定义?,Makefile,自动化的程序生成,Makefile是什么,自动化的完成一个指定的目标多用于程序的自动生成自动根据依赖关系顺序执行命令可以自动根据时间判断是否需要重新执行某步骤,Makefile的基本结构,标签:标签1 标签2命令1命令2,一个简单的Makefile,edit:main.okbd.ocommand.odispla

6、y.o insert.osearch.ofiles.outils.o cc-oeditmain.okbd.ocommand.odisplay.oinsert.osearch.ofiles.outils.o main.o:main.cdefs.h cc-cmain.c kbd.o:kbd.cdefs.hcommand.h cc-ckbd.c command.o:command.cdefs.hcommand.h cc-ccommand.c display.o:display.cdefs.hbuffer.h cc-cdisplay.c insert.o:insert.cdefs.hbuffer.h

7、cc-cinsert.c search.o:search.cdefs.hbuffer.h cc-csearch.c files.o:files.cdefs.hbuffer.hcommand.h cc-cfiles.c utils.o:utils.cdefs.h cc-cutils.c clean:rmeditmain.okbd.ocommand.odisplay.oinsert.osearch.ofiles.outils.o,Debug/release模式,VC+中的DEBUG模式帮你做了什么?,Debug都做了什么,/Od关闭优化/D _DEBUG”#define _DEBUG/GZ用不同的数值填充内存区域/Zi为可执行程序写入调试信息,可以设置断点、单步执行等,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1