gcc的编译流程:
1.预处理
处理和#号相关的代码
将满足条件的代码加入到编译中,不满足条件的代码从编译中去除
gcc -E filename.c -o filename.i
2.编译
将C语言代码编译成汇编代码
gcc -S filename.c -o filename.s
3.汇编
将汇编代码编译成二进制代码
gcc -c filename.c -o filename.o
4.链接
将多个二进制代码链接成为一个可执行程序
gcc filename.c -o filename
1.进制转换:
二进制、八进制、十六进制 -> 十进制转换: 对应位 *对应位的权值再求和
十进制 -> 二进制、八进制、十六进制转换: 十进制数除以进制数得到的余数逆序
二进制 -> 八进制、十六进制:八进制1位对应二进制3位
十六进制1位对应二进制4位
2.负数在计算机中的存储:
正数补码为该数的二进制形式
负数补码要经过原码->反码->补码获得对应的二进制形式
3.一个程序如何在计算机中运行起来的?
内存:
1.读写速度快
2.价格昂贵
3.掉电数据丢失
外存:
1.读写速度慢
2.价格便宜
3.掉电数据不丢失
基本数据类型:
数据类型:
1.基本数据类型
1.整数类型
整数类型分为有符号的整数类型、无符号的整数类型
存储方式:最左边1位作为符号位剩余作为数据位,整数直接存放二进制,负数存补码(原码->反码->补码)
sizeof:获得数据类型或者变量在内存中所占字节数
2.字符类型
字符类型分为有符号类型、无符号类型
3.浮点数类型
浮点数类型均为有符号,没有无
浮点数 -> 转换成为对应的二进制形式 -> 二进制科学计数法形式 -> 获得尾数位(小数点后) -> 获得指数位(+127 float +1024 double ) -> 存入浮点数类型中(float: 1符号位 + 8指数位 + 23尾数位 double: 1符号位 + 11指数位 + 52尾数位)
4.缺省类型
void 搭配函数或指针使用,表示类型缺省
5.泊尔类型(逻辑类型)
bool true: 1 flase: 0
非0值均为逻辑真值
0值为逻辑假值
2.构造数据类型
2.变量和常量:
1.常量:在程序运行过程中值不能被改变的量称为常量
1.整形常量(默认为 signed int)
2.浮点型常量(默认为 double)
3.字符常量
4.字符串常量
5.标识常量
#define PI 3.1415
宏定义只是代码的替换,中间不进行任何数据计算的操作
宏在使用时能加括号就加括号
2.变量:在程序运行过程中值可以发生改变的量称为变量
注意1.变量要先定义再使用
1.变量的定义: 数据类型 变量名;
变量名要求 1.变量名只能由字母、数字、下划线构成,不能以数字开头
2.变量名不要与C语言关键字重名
3.变量名最好不要与库函数重名
4.变量名最好是见名知意
2.变量的使用场景:存储数据值的时候
1.变量类型需要与要储存的数据类型保持一致
2.防止数据值超过变量的值域范围
3.变量的初始化:
变量未经初始化为随机值(不要使用未经初始化的变量)
初始化:定义变量的时候为变量赋初值