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

网站建设好的公司专业服务网页制作与网站建设宝典pdf

网站建设好的公司专业服务,网页制作与网站建设宝典pdf,asia域名,什么样 个人网站 备案目录 01.预处理#xff08;宏替换#xff09; 02.编译#xff08;生成汇编#xff09; 03.汇编#xff08;生成机器可识别码#xff09; 04.连接#xff08;生成可执行文件或库文件#xff09; 05.选项 编译器在编译代码时包含以下四个步骤#xff1a;1.预处理 2…目录 01.预处理宏替换 02.编译生成汇编 03.汇编生成机器可识别码 04.连接生成可执行文件或库文件 05.选项 编译器在编译代码时包含以下四个步骤1.预处理 2.编译 3.汇编 4.连接 下面来一一介绍 格式gcc [选项] 要编译的文件 [选项] [目标文件] 01.预处理宏替换 编译器预处理阶段主要负责处理源代码中的预处理指令其中包括宏替换。 预处理器 编译器预处理阶段由预处理器负责执行。预处理器负责源代码中以‘#’开头的预处理指令例如‘#define’、‘#include’、‘#ifdef’等并将它们转换为相应的代码。 宏替换 宏替换是与处理区的一项重要功能。在预处理阶段编译器会执行宏替换将源代码中的宏定义替换为其相应的内容。宏定义通常使用‘#define’指令定义例如 #define PI 3.14159在预处理阶段编译器会将代码中所有出现的‘PI’替换成‘3.14159’。 宏参数 宏定义可以嗲有参数这样可以创建参数化的宏。例如 #define MAX(x, y) ((x) (y) ? (x) : (y))宏展开 预处理器在进行宏替换时会执行宏展开即将宏调用替换成宏定义的内容在进行宏展开时会递归地展开嵌套的宏调用直到没有更多的宏调用为止。 实例 选项-E该选项的作用是让gcc在预处理结束后停止编译过程。 选项-o是指目标文件“text.i”文件为已经过预处理的C原始程序。 02.编译生成汇编 在这个阶段中gcc首先要检查代码的规范性、是否有语法错误等以确定代码实际要做的工作在检查无误后gcc把代码翻译成汇编语言。 词法分析 也称扫描器它负责将源代码分解成单词去除空白字符和注释。通常使用有限状态自动机或正则表达式来实现。 语法分析 也称解析器它负责将词法分析器生成的单词流转换成抽象语法树。这个阶段检查语法错误确保代码符合语言规范。 语义分析 语义分析器检查源代码中的语义错误如类型不匹配、未声明的变量等。它还负责构建符号表以及执行类型推断等任务。 优化 在生成目标代码之前编译器通常会对中间表示进行有害以提高程序的性能和效率。优化技术包括常量折叠、循环展开、死代码删除等。 代码生成 在这个阶段编译器将优化后的中间表示转换成目标机器的汇编代码或机器码。这个过程通常包括指令选择、寄存器分配、指令调度等步骤。 实例 选项-S进行编译生成汇编代码并停止汇编过程。 03.汇编生成机器可识别码 汇编阶段是把编译阶段生成的“.s”文件转成目标文件 语法分析 在语法分析阶段编译器会将源代码转换为中间表示形式通常是抽象语法树或者中间代码。这个过程包括词法分析和语法分析。 词法分析器负责将源代码分解为单词或者标记去除空格、注释等不必要的字符。 代码生成 代码生成阶段将中间表示形式转换为目标机器能够识别的汇编代码或者机器码。这个阶段包括指令选择、寄存器分配、指令调度等过程。 指令选择负责将中间表示的操作转换为目标机器的指令序列。寄存器分配则是将变量分配到寄存器或者内存位置以最小化访存操作。指令调度会对指令序列进行重新排列以优化执行顺序提高指令级并行度和流水线利用率。 实例 选项-c将汇编代码转化为二进制目标代码 04.连接生成可执行文件或库文件 在成功编译之后就进入了链接阶段。 实例 输入./对程序进行执行 这里涉及一个重要的概念函数库 我们的C程序中并没有定义“printf”的函数实现且在预编译中包含的“stdio.h”中也只有该函数的声明而没有函数的定义那么“printf”函数是哪里实现的呢 事实上系统把这些函数实现都被做到名为lib.so.6的库文件中去了在没有特别指定时gcc会到系统默认的搜索路径“/user/lib”下进行查找也就是链接到lib.so.6库函数中区这样就能实现函数“printf”了而这也就是链接的作用 函数库分为静态库及动态库 静态库 静态库是一组预编译的目标文件的集合这些目标文件中包含了函数的实现和数据。静态库的文件扩展名通常为 .a在Unix/Linux系统中或 .lib在Windows系统中。当你使用静态库时编译器会将库文件的代码复制到可执行文件中使得可执行文件变得更大。这意味着可执行文件中包含了静态库中的所有函数和数据使得可执行文件变得更加独立。 动态库 动态库是一组预编译的目标文件的集合与静态库不同的是它们在程序运行时被动态加载到内存中。动态库的文件扩展名通常为 .so在Unix/Linux系统中或 .dll在Windows系统中。使用动态库可以减小可执行文件的大小并且可以在运行时动态地加载和卸载库文件。这使得动态库在系统资源使用和代码更新方面更加灵活。 05.选项 除了以上的四个gcc还有很多选项 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面 -S  编译到汇编语言不进行汇编和链接 -c  编译到目标代码 -o 文件输出到 文件 -static 此选项对生成的文件采用静态链接 -g 生成调试信息。GNU 调试器可利用该信息。 -shared 此选项将尽量使用动态库所以生成文件比较小但是需要系统由动态库. -O0 -O1 -O2 -O3 编译器的优化选项的4个级别-O0表示没有优化,-O1为缺省值-O3优化级别最高 -w  不生成任何警告信息。 -Wall 生成所有警告信息。
http://www.pierceye.com/news/388958/

相关文章:

  • 网站建设美工的职位要求建材做哪些网站好
  • 淘宝客自建网站wap免费空间
  • python快速搭建网站如何制作一个微信刷题小程序
  • 域名备案与网站备案网站漏洞解决
  • 公明做网站多少钱高端网站设计怎么样
  • 重庆网站建设 熊掌号wordpress 被发文章
  • 网站建设管理视频广东省农业农村厅班子
  • 网站建设需要钱吗开发一个小程序流程
  • 通州富阳网站建设做足彩网站推广
  • 一个公司做网站需要注意什么条件车之家汽车官网
  • 石家庄网站建设网站建设网站的制作哪家好
  • 苏州晶体公司网站网站排名优化各公司的
  • 网站开发大致多少钱团队拓展训练
  • p2p网站建设方案卫龙模仿iphone做网站
  • 做盗版电影网站犯法吗Wordpress 淘宝客 页面
  • 自己做网站费用html5结构的网站
  • wordpress做资源分享站做网站的图哪来
  • 国外设计欣赏网站线上建模培训班哪个好
  • 微信网站建设合同怎么在本地搭建网站
  • 班级网站怎么做网页制作临沂网站制作方案
  • 泰州网站建设服务好wordpress调用分类名
  • 中英切换的网站咋做怎样在网站做推广
  • 初学网站开发书籍如何提升网站打开速度
  • 深圳微信网站建设公司哪家好网站 维护 页面
  • 做个企业网站需要多少钱北京西站到大兴机场
  • 数字博物馆网站建设动态设计是什么意思
  • 沧州市做网站价格wordpress构建自己的网站
  • seo外链网站源码新公司注册核名
  • 游戏网站建设的策划方案python做电子商务网站
  • pxhere素材网站网上搞钱的野路子