- 预处理 -E xxx.i 预处理文件
gcc -E xxx.c -o xxx.i
- 头文件展开。 — 不检查语法错误。 可以展开任意文件。
2)宏定义替换。 — 将宏名替换为宏值。
3)替换注释。 — 变成空行
4)展开条件编译 — 根据条件来展开指令。
- 编译 -S xxx.s 汇编文件
gcc -S hello.i -o hello.s
1)逐行检查语法错误。【重点】 — 整个编译4步骤中最耗时的过程。
2)将C程序翻译成 汇编指令,得到.s 汇编文件。 - 汇编 -c xxx.o 目标文件
gcc -c hello.s -o hello.o
1)翻译:将汇编指令翻译成对应的 二进制编码。 - 链接 无 xxx.exe 可执行文件。
gcc hello.o -o hello.exe
1)数据段合并
2)数据地址回填
3)库引入
- 常量:不会变化的数据。不能被修改。
- “hello”、‘A’、-10、3.(浮点常量)
- #define PI 3.1415 【强调】:没有分号结束标记。 【推荐】 定义宏: 定义语法: #define 宏名 宏值
- const int a = 10; 定义语法:const 类型名 变量名 = 变量值。
const关键字: 被该关键字修饰的变量,表示为只读变量。
- 变量:会变化的数据。能被修改。
- 定义语法:类型名 变量名 = 变量值。(一般方法)
- 变量三要素:类型名、变量名、变量值。 int r = 3; float s = PIrr;(变量值是一个表达式)
- 变量的定义: int a = 40;
- 变量的声明:
- int a; 没有变量值的变量定义 叫做声明。
- extern int a; 添加了关键字 extern。
- 变量定义会开辟内存空间。变量声明不会开辟内存空间。
- 变量要想使用必须有定义。
当编译器编译程序时,在变量使用之前,必须要看到变量定义。如果没有看到变量定义,编译器会自动找寻一个变量声明提升成为定义。
如果该变量的声明前有 extern 关键字,无法提升。
【建议】:定义变量时。尽量不要重名。
- 标识符:
变量和常量的统称。
命名规则:
sizeof关键字:
有符号整型:
无符号整型:
char字符类型:1字节
转义字符:
实型(浮点数、小数):
8进制:
16进制:
总结:
存储知识:
源码反码补码:【了解】
43-27 ==> 43 + -27
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/66972.html