当前位置: 首页 > news >正文

网站建设 软件有哪些网站建设要点

网站建设 软件有哪些,网站建设要点,深圳网络营销的推广,个人简历怎么写简短又吸引人一:程序的翻译环境和执行环境 在 ANSI C 的任何一种实现中,存在两个不同的环境。 第 1 种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第 2 种是执行环境,它用于实际执行代码 也就是说:↓ 1&#xff1…

一:程序的翻译环境和执行环境

ANSI C 的任何一种实现中,存在两个不同的环境。
1 种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。
2 种是执行环境,它用于实际执行代码
也就是说:↓

1:翻译环境代码->二进制指令

2:执行环境:执行二进制指令

Q:我们写的代码是文本信息,而计算机执行的是二进制的指令,这二者之间如何进行的转换?

换句话说就是:翻译环境中发生了什么,才让代码->二进制指令?

解释: 我们写代码的文件叫作.c源文件,会经过编译器生成目标文件(不同环境和编译器的目标文件不同,比如VS是.obj,Linux环境下的gcc是.o),然后最后通过链接器把目标文件和链接库进行链接生成可执行程序。

这是一个在VS上写代码到生成可执行程序的过程,编译器为我们做了很多,才让我们能从源文件一下到目标文件,所以博主选择在Linux环境下的gcc编译器下进行细节上的演示,才能清楚的知道翻译环境到底发生了什么。

二:翻译环境工作图

解释:翻译环境分为四步

1:预编译(也叫作预处理)

2:编译

3:汇编

4:链接 

三:翻译环境工作的展示

前提准备:

源文件创建及代码书写:

①:

我们创建一个在gcc中创建一个class110目录,在其下创建一个源文件test.c,在里面写上如图所示的代码

第一阶段:预编译 

①: 然后在终端对test.c这个源文件进行gcc -E -o test.i(-E代表执行完预编译阶段就停止,然后放在test.i这个文件)

 ②:此时生成了test.i这个文件

③:将test.i和test.c进行对比 

解释:

将test.i和test.c进行对比,我们能发现了第一阶段预编译的作用:

1:注释的删除

2:头文件的包含(test.i前面的800+行,就是#include<stdio.h>的内容)

3:#define符号的替换(直接把M替换成了100)

总结:所有的预处理指令(如文件包含、宏定义、条件编译等)都是在预编译阶段完成的。

这些统称为文本操作

第二阶段:编译

①:gcc -S test.i(对test.i进行 -S(执行完第二阶段编译就停止)放进自动生成的test.s中)

解释:此时打开test.s发现全是汇编代码, 所以第二阶段的工作是:将代码翻译成汇编代码,放进了自动生成的test.s中

 第三阶段:汇编

①:gcc -c test.c(执行完第三阶段汇编就停止,放进自动生成的目标文件test.o中)
②:打开test.o,被警告

 解释:打开test.o发现其是二进制文件,所以该阶段的功能:将汇编指令翻译成了二进制指令 

③:强行打开目标文件test.o

解释:ELF是一种文件的格式 ,需要用指令readelf来读取ELF格式的文件

④:用指令readelf来读取ELF格式的文件

 解释:此时返现我们需要输入一些选项(-a,-h,-l.......)来进行选择性的查看 

⑤:-a选项,查看到段表

解释:这就是段表,也就是说ELF这种文件格式,其实是按照一个一个的段来存储的,这也是第四阶段链接中的功能合并段表中所谓的段表 

⑥:-s来查看符号表

解释:

1:此时发现符号表中有我们代码的全局变量g_val,函数Add,函数main,库函数printf

2:这些都被存储到了符号表中 ,这就是第三阶段汇编的另一个作用,形成符号表,那么符号表是做什么的?在第四阶段里面有作用

 第四阶段:链接

①:gcc test.o -0 test(链接生成可执行程序test)

②:打开可执行程序test 

解释:可执行程序test依旧是一个二进制文件,也是可以用ELF打开的

四:链接的功能讲解:

①:假设两个.c源文件

解释:一个.c只是声明了Add函数,一个.add有函数的定义

②:链接的功能

 解释:

1:每个源文件都在编译阶段 进行了符号汇总,然后在汇编阶段进行了形成符号表,即函数和对应的地址进行合并形成符号表(test.c的 Add是声明,所以地址是无效的)

2:在链接进行合并符号表,把两个源文件的符号表进行合并

3:Add的地址确认为有效地址(add.c中的函数地址)就叫作符号表的重定位

http://www.yayakq.cn/news/212716/

相关文章:

  • 德州市住房建设局网站智通人才网招聘信息
  • 网站首页设计布局wordpress文章存在哪
  • 千博企业网站系统一家专做有机蔬菜的网站
  • 图片网站建站系统科技软件公司网站模板
  • 口碑好的网站建设哪家好建设银行河北省分行官方网站
  • 廊坊百度网站排名网站 chat now怎么做
  • 网站服务器哪家好些叫人做网站要注意
  • 苏州企业网站建jsp租房网站开发
  • 样式表一般用于大型网站何如做外贸网站推网
  • 网站建设需要会代码吗设计方案评价
  • 宁海网站建设专门做预言的网站
  • 帮人恶意点击网站怎么免费制作企业网站
  • 可以免费打开网站的软件下载专业网站建设技术
  • 书店建设网站的能力临时网站搭建
  • 网站关键字如何选择seo是做什么工作内容
  • 你好南京网站分销系统开发多少钱
  • 图书网站开发的实践意义产品开发怎么写
  • 创建公司网站用什么软件服装 多语言 网站源码
  • 申请域名后可以做自己的网站吗可以直接进入的网站正能量大豆网
  • 设计师网上接单被骗搜索排名优化策划
  • 多城市分站站群cms云南省和城乡建设厅网站
  • 企业网站设计建设服务器网站网络营销方案
  • 做化妆品注册和注册的网站有哪些wap网站开发流程
  • html5 手机网站 教程郴州网课
  • 百度资源站长平台网站建设H5 源码
  • 网站地图怎么做_网页升级访问未满18岁请离开
  • 郑州航空港区建设局网站怎么免费做网站视频教学
  • 北京建设银行网站首页有没有专业做网站的
  • 做五金找订单查什么网站网站运营繁忙
  • 网站数据库 mysql手机制作图片