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

绵阳哪里可以做网站的地方百度推广管理平台登录

绵阳哪里可以做网站的地方,百度推广管理平台登录,门户网站如何增加流量,深圳的产品设计公司✅博客主页:爆打维c-CSDN博客​​​​​​ 🐾 🔹分享c语言知识及代码 一、编译和链接实例 假设我们有一个名为main.c的C语言源文件,它包含了一个简单的Hello World程序。我们可以使用gcc编译器对该源文件进行编译,生成一个可执行…

✅博客主页:爆打维c-CSDN博客​​​​​​ 🐾

🔹分享c语言知识及代码


一、编译和链接实例

假设我们有一个名为main.c的C语言源文件,它包含了一个简单的Hello World程序。我们可以使用gcc编译器对该源文件进行编译,生成一个可执行文件。具体步骤如下:

  1. 预处理:首先,gcc编译器会对main.c文件进行预处理,处理其中的宏定义、条件编译等指令,生成一个预处理后的文件(通常为.i文件)。
  2. 编译:然后,gcc编译器会对预处理后的文件进行编译,将其转换为汇编代码文件(通常为.s文件)。这个过程包括了词法分析、语法分析、语义分析和优化等步骤。
  3. 汇编:接着,汇编器会将汇编代码文件转换为机器语言的目标文件(通常为.o文件)。
  4. 链接:最后,链接器会将目标文件和必要的库文件进行链接,生成一个可执行的二进制文件(如a.out)。

二、预处理、编译、汇编、链接详解

1. 预处理(预编译)

在预处理阶段,源⽂件和头⽂件会被处理成为.i为后缀的⽂件。
gcc 环境下想观察⼀下,对 test.c ⽂件预处理后的.i⽂件,命令如下:
  gcc -E test.c -o test.i
预处理阶段主要处理那些源⽂件中#开始的预编译指令。⽐如:#include,#define,处理的规则如下:
将所有的 #define 删除,并展开所有的宏定义。
处理所有的条件编译指令,如: #if #ifdef #elif #else #endif
处理#include 预编译指令,将包含的头⽂件的内容插⼊到该预编译指令的位置。这个过程是递归进
⾏的,也就是说被包含的头⽂件也可能包含其他⽂件。
删除所有的注释
添加⾏号和⽂件名标识,⽅便后续编译器⽣成调试信息等。
或保留所有的#pragma的编译器指令,编译器后续会使⽤。
经过预处理后的.i⽂件中不再包含宏定义,因为宏已经被展开。并且包含的头⽂件都被插⼊到.i⽂件
中。所以当我们⽆法知道宏定义或者头⽂件是否包含正确的时候,可以查看预处理后的.i⽂件来确认。

2. 编译

编译是将预处理后的源代码转换为汇编代码的过程。编译器会检查源代码的语法和语义错误,并生成一个或多个汇编文件。
编译过程的命令如下:
1 gcc -S test.i -o test.s

在编译阶段,编译器会进行以下操作:

  • 词法分析:将源代码分解为一系列的记号(tokens)或词汇单元(lexical units),如变量名、关键字、操作符、标点符号等。
  • 语法分析:根据语言的语法规则,将记号组合成语法结构(如表达式、语句、程序块等)。
  • 语义分析:检查源代码的语义,确保它们有意义。例如,检查变量是否在使用前已定义,函数调用的参数是否与函数定义匹配等。
  • 中间代码生成:将源代码转换为一种中间表示形式(如三地址码),以便后续的优化和汇编。
  • 优化:对中间代码进行优化,以提高程序的执行效率。
  • 目标代码生成:将优化后的中间代码转换为特定机器或目标平台的汇编代码。

3. 汇编

汇编器是将汇编代码转转变成机器可执⾏的指令,每⼀个汇编语句⼏乎都对应⼀条机器指令。就是根据汇编指令和机器指令的对照表⼀⼀的进⾏翻译,也不做指令优化。
汇编的命令如下:
gcc -c test.s -o test.o

4.链接

链接是⼀个复杂的过程,链接的时候需要把⼀堆⽂件链接在⼀起才⽣成可执⾏程序。
链接过程主要包括:地址和空间分配,符号决议和重定位等这些步骤。
比如写了一个项目,有多个文件
每个文件都是独立的, 每个源⽂件都是单独经过编译器处理⽣成对应的⽬标⽂件。
我们在 test.c 文件中每一次使用snake.c 中的函数时的必须确切的知道snake.c 中的函数的地址,但是由于每个文件是单独编译的,在编译器编译 test.c的时候并不知道snake.c 中的函数的地址,(假设使用Add函数)所以暂时把调用Add函数指令的目标地址搁置。等待最后链接的时候由链接器根据引用的符号,在其他模块中查找Add函数的地址,然后将 test.c 中所有引用到Add函数的指令重新修正,让他们的目标地址为真正的 Add 函数的地址,对于全局变量也是类似的方法来修正地址。这个地址修正的过程也被叫做: 重定位。
http://www.ds6.com.cn/news/65876.html

相关文章:

  • 饰品网站设计方案河南新站关键词排名优化外包
  • google关键词排名产品seo基础优化
  • 服务器做网站FTP必要性大吗制作网站要花多少钱
  • 陶瓷 中企动力 网站建设常见的网站推广方式
  • 重庆 网站 建设软文推广策划方案
  • 新手做站必看 手把手教你做网站seo公司资源
  • 女生做网站主题有哪些营销网站做的好的公司
  • 私人建设网站营销策划与运营公司
  • 网站开发一般要用到哪些软件外贸网站推广seo
  • 怎样把自己做的网页放在网站里游戏推广引流
  • 微信小程序如何推广高级seo是什么职位
  • 光明网站建设百度下载软件
  • phpcms v9 网站建设设计制作网络科技模板核心关键词
  • 天河网站建设企业百度指数怎么做
  • 现在找个网站这么难的吗免费广告推广软件
  • 旅游网站设计规划书hs网站推广
  • 阿里巴巴网站图片怎么做百度seo怎么做
  • 怎么做qq刷会员的网站建设一个网站的具体步骤
  • py网站开发视频教程线上推广方式都有哪些
  • 阿里云 建设网站专业关键词优化平台
  • 企查查入口网页版教程seo推广排名网站
  • 徐州做网站建设公司真正免费的网站建站平
  • 网站开发教程网上海专业seo
  • 漳州网站建设喊博大科技宠物美容师宠物美容培训学校
  • 谷歌 网站做推广百度云搜索引擎官网
  • p2p金融网站建设网络营销软件站
  • 对电子商务网站设计的理解百度推广费用
  • 网站上的充值链接怎么做的网络优化工程师工作内容
  • 网推什么平台好用seo研究院
  • 免费网站怎么盈利模式银川seo