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

1-17课程总结

C源程序运行的机制流程

首先,我们来复习一下C源程序运行的机制流程。这个部分大家需要重点掌握的是几个关键步骤。虽然具体的文件后缀记不住也没关系,但关键步骤要记清楚。

第一步是预处理操作。这个阶段会处理宏定义,比如我们之前提到的#define PI 3.14,这种宏定义在预处理阶段会进行全局替换。比如使用-E参数,可以得到预处理后的文件,里面就是宏定义替换后的结果。

第二步是编译。这一步将源代码文件转换成汇编语言程序。记住,从高级语言到汇编语言的转换过程叫做编译。

第三步是汇编。这一步将汇编语言程序转换成二进制文件。这一步非常关键,因为涉及到从汇编语言到底层机器语言的转换。

第四步是链接。链接阶段将我们自己生成的目标文件和用到的函数库文件合并,形成一个可执行的二进制程序。

此外,还有一些扩展概念,比如反汇编和反编译,这些是反向翻译的过程,但这些概念不要求大家掌握,只是稍微了解一下。

变量的使用

接下来是变量的使用。大家应该对变量的声明没有什么问题。声明变量时,需要指定一个类型,比如intdouble,然后是变量名,接着可以进行赋值。可以声明后单独赋值,也可以在声明时同时赋值。

对于printfscanf的使用,可能会觉得有点复杂,因为涉及到格式化输入输出,需要调用库函数。这部分内容需要多练习,特别是scanf,因为它对格式的要求比较严格,不能有多余的东西。

常量的定义

最后是常量的定义。我们提到了宏定义#define,这是一种全局替换,没有类型检查,所以不太安全。而使用const关键字定义的常量则更安全,因为它不允许重新赋值。

常量只能在定义的时候给一个初始值,不能在后面重新赋值。如果尝试给常量重新赋值,编译器会报错。

好了,这是我们今天课程的主要内容。如果你有任何疑问,或者想要我详细解释某个部分,随时告诉我。接下来,你可以发送下一个文件,我们继续学习。


http://www.kler.cn/news/364819.html

相关文章:

  • 【逆向基础】十七、PE文件格式(二)
  • Java老鸟前端小白uniapp+uview开发小程序第2天
  • C语言初阶七:C语言操作符详解(1)
  • LeetCode题解:2357. 使数组中所有元素都等于零,排序,详细注释
  • 《Windows PE》6.4.2 远程注入DLL
  • [分享] SQL在线编辑工具(好用)
  • Docker 的网络模式 + 容器间通讯 + TC 流量控制工具
  • 现场总是发生急停,很可能是PLC和设置间网络中断
  • 供电电压和逻辑电压
  • Linux:文件IO
  • Unity-Shader-Tags
  • el-select实现模糊搜索、远端搜索
  • 线性可分支持向量机的原理推导【补充知识部分】拉格朗日函数 公式解析
  • Ubuntu下查看指定文件大小
  • Jenkins发布vue项目,版本不一致导致build错误
  • C++,STL 042(24.10.21)
  • 探索Web3与区块链的融合:未来互联网的新范式
  • Linux的用户管理、组帐号管理(chmod,chown)
  • Makefile:1954: recipe for target ‘Modules/_ssl.o‘ failed请安装ssl后,重新安装或编译Python
  • VS2022控制台程序显示命名空间引用
  • 影刀RPA实战:网页爬虫之桌面壁纸图片
  • 闯关leetcode——168. Excel Sheet Column Title
  • CSV文件自动化生成:用Pandas与Datetime高效处理商品信息
  • 【matlab 计算任意两个序列的dtw距离】
  • CG-66无线土壤水分传感器,实时在线测量土壤温湿度,并使用物联网进行传输
  • 嵌入式面试刷题(day19)