一、gcc的编译流程
1.预处理:处理和#号相关的代码
gcc -E filename.c -o fliename.i
eg: #include<stdio.h> 将stdio.h头文件展开
#define PI 3.14 定义一个宏,将程序中的PI替换成3.14
2.编译:将C语言代码编译成汇编代码
gcc -S filename.c -o fliename.s
3.汇编:将汇编代码编译成二进制代码
gcc -c filename.c -o fliename.o
4.链接:将多个二进制代码链接成为一个可执行程序
gcc filename.c -o fliename
二、进制转换
二进制、八进制、十六进制→十进制:对应位*对应位的权值再求和
十进制→二进制、八进制、十六进制:十进制数除以进制数得到的余数逆序排列
二进制→八进制、十六进制:八进制一位对应二进制三位;十六进制一位对应二进制四位
三、数在计算机中的存储——补码形式
| 正数 | 负数 | |
| 原码 | 符号位0+真值本身 | 符号位1+真值本身 |
| 反码 | 符号位0+真值本身 | 符号位1+真值按位求反 |
| 补码 | 符号位0+真值本身 | 符号位1+真值按位求反,末位加1 |
四、基本数据类型
①整数类型:无符号unsigned 有符号signed
| short | 短整型 | 2个字节 |
| int | 整型 | 4个字节 |
| long | 长整型 | 8个字节 |
②字符类型:char
③浮点数类型
| float | 单精度浮点数类型 | 4个字节 |
| double | 双精度浮点数类型 | 8个字节 |
④缺省类型:void 搭配函数或指针使用,表示类型缺省
⑤泊尔类型(逻辑类型):bool(ture:1 flase:0)非零值均为逻辑真值
五、常量和变量
常量:程序运行中值不改变
①整型常量(默认为signed int)
②浮点型常量(默认为double)
③字符常量:单引号表示
④字符串常量:双引号表示(字符串末尾存在一个\0字符)
⑤标识常量
变量:程序运行过程中可以发生改变
变量的定义:数据类型 变量名;
定义要求:
变量名只能由字母、数字、下划线组成,不能以数字开头;
变量名不要与C语言关键字重名;
变量名最好不要与库函数重名;
变量名最好是见名知意;
本文详细介绍了GCC编译器的工作流程,包括预处理、编译、汇编和链接,以及二进制转换的基本概念,还涵盖了计算机中数的存储(补码)和C语言中的基本数据类型、常量与变量。

6835

被折叠的 条评论
为什么被折叠?



