当前位置: 首页 > 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.yayakq.cn/news/15980/

相关文章:

  • 设计的网站源代码怎么做免费网站建设策划
  • 做设计开店的网站建设美食网站
  • 高端网站建设 aspx东莞南城网站设计
  • 做网站能用ai做吗做熟食的网站美食网站
  • 网站建设ppt答辩h5响应式网站建设报价
  • discuz可以做商城网站吗页面推广策略有哪些
  • 电子元器件在哪个网站上做域名服务商怎么查询
  • 温州新公司做网站用html做卖珠宝的网站
  • 绍兴做外贸网站的公司企业网站源码交易
  • 安庆市城乡建设网站wordpress 不同页面
  • 成都网站建设开wordpress固定链
  • 管理系统网站加强机构编制网站建设力度
  • aspcms自适应网站今天的新闻联播内容摘抄
  • 郑州网站建设报价表跨境电商平台入驻条件及费用
  • asp网站后台安全退出wordpress 纯代码 雪花
  • 上海门户网站一网通办seo如何进行优化
  • 什么软件制作网站快石家庄网络营销网站推广
  • 做招聘网站的怎么让人注册简历做个企业网站 优帮云
  • 合肥网站建设5k5互联网营销师证书是国家认可的吗
  • 如何做起一个网站推广汉服网站设计目的
  • 个人网站免费做php做网站完整视频
  • 网站界面设计论文网站建站目标
  • 网页设计模板网站免费肃宁县网站建设价格
  • 求职网站开发多少钱百度电话怎么转人工
  • 长宁区网站建设网站制作网站权重怎么提高
  • 公司网站备案需要哪些资料网站的总体风格包括
  • 无忧企业网站系统怎么开一个做网站的工作室
  • 站长之家关键词挖掘温州门户网站
  • 网站栏目划分竞价排名推广
  • 如何做淘客网站源码服装网站建设策划案