一.gcc编译过程
1.预处理阶段:
处理与#相关的预处理阶段
gcc -E hello.c -o hello.i(只进行预处理阶段)
2.编译过程
将C语言编译为汇编语言
gcc -S hello.i -o hello.s
3.汇编阶段
将汇编语言转为二进制机器语言
gcc -c hello.s -o hello.o(目标程序)
4.链接阶段
将机器语言转为可执行程序
gcc hello.o -o (文件名)
二.语句与表达式
1.语句:
以 ;为结尾的代码
2.表达式:
以一个或多个运算符连接的常量,变量或其他表达式所形成的式子
常量: 有空间 有值 有类型
变量: 有空间(不能访问) 有值 有类型
表达式:有空间(临时性空间)有值 有类型
三.隐式转换
1.混合运算过程中的数据类型转换
①浮点型>整形以及整形兼容性数据类型
②大空间的数据类型 精度高于 小空间数据类型
③无符号数据类型 精度高于 有符号数据类型
三种条件同时存在时,优先级①>②>③
2.赋值运算过程中数据类型转换
由右值的数据类型向左值转换
3.数据类型隐式转换方式
整形及整形兼容型数据
等空间 转 等空间
数据不变
小空间 转 大空间
有符号数据类型:符号位扩展
无符号数据类型:高位补零
大空间 转 小空间
截取数据低位
浮点型数据 转 整形及整形兼容型数据
小数部分丢失
整形及整形兼容型数据 转 浮点型数据
小数部分扩展
单精度 转 双精度
精度扩展
双精度 转 单精度
精度损失
四.显式转换
1.强制转换
(数据类型)变量,常量,表达式
C语言学习day4
最新推荐文章于 2024-09-25 09:27:18 发布
本文详细解析了GCC编译过程,包括预处理、编译、汇编和链接阶段,以及语句与表达式的概念。重点探讨了隐式和显式数据类型转换在不同操作中的表现和规则。
摘要由CSDN通过智能技术生成