c语言的学习(一)------ c程序开发环境及程序结构

本文详细介绍了C语言的程序编译过程,包括预处理、编译、汇编和链接四个阶段,并讲解了gcc的使用方法。此外,还探讨了C语言的注释规范、数据类型、常量与变量的概念,以及格式化输入输出函数的基本应用。
摘要由CSDN通过智能技术生成

一、gcc的使用

(一)程序编译过程

程序编译的四个过程:预处理、编译、汇编、链接

1、预处理:gcc -E main.c -o main.i 

        生成.i文件将进行如下操作:

        (1)将所有的#define删除,并展开所有的宏定义。

        (2)处理所有的预编译指令,例如: #if,#elif,#else,#endif等

        (3)处理#include预编译指令,将所包含的文件插入到预编译指令的位置

        (4)添加行号信息,文件标识,便于调试

        (5)删除所有的注释

        (6)保留所有的#pragma编译指令,因为在编写程序的时候,我们经常要用到#pargma指令来设定编译的状态或者是指示编译器完成一些特定的动作。

        (7)生成.i文件(包括去注释、宏替换、头文件展开、条件编译),编译生成的.i文件不包含任何宏定义,因为宏已经被展开,并且包含的文件已经被插入到.i文件中。

2、编译:gcc -S main.i -o main.s        (将c/c++转换成汇编)

        生成.s文件,需要进行如下操作:

        (1)扫描、语法分析、语义分析、源代码分析、目标代码生成、目标代码优化

        (2)生成汇编代码

        (3)汇总符号

        (4)生成.s文件

3、汇编:gcc -c main.s -o main.o        (将汇编转换成二进制)

        生成.o文件,需要进行如下操作:

        (1)根据汇编指令和特定平台,把汇编指令翻译成二进制形式

        (2)合并各个section,合并符号表

        (3)生成.o文件

4、链接:gcc  main.o -o main 

        链接过程会进行如下操作:

        (1)合并各个.obj文件的section,合并符号表,进行符号解析

        (2)符号地址重定位

        (3)生成可执行文件

(二)gcc的使用

常用的两种生成可执行程序的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值