关于编译和一些C语言基础概念

知识的内容来自于谭浩强的《C语言程序设计》,按自己的理解翻译了下,不时候初学者,仅仅是自己的一些胡乱的总结和回顾:

一些概念

程序:一组机器可以识别并且可以执行的指令;
机器指令(machine instruction):计算机能够直接识别和执行的二进制代码;
机器语言(machine language):机器指令的集合就是机器语言;计算机只能识别固定长度的二进制(0和1)代码;早期的计算机只能识别16位的的二进制代码,后来随着科技能力的提高,也有了32位的二进制代码;
源程序(source program):由高级语言编写的程序;
编译程序软件:计算机不能直接识别高级语言(包括C),计算机要识别高级语言,必须将高级语言“翻译”成机器指令;所以就有了编译程序软件,将高级语言转化为机器指令,所以一条高级语言往往对应多条机器指令;
目标程序(object program):通过编译程序软件将高级语言翻译成的机器指令程序;
//面向过程:在编写程序时具体指定每一个过程的细节;
待续……

C语言程序的结构

  1. 一个程序由一个或者多个源程序组成;每个源程序文件大概分为三部分:
    (1)预处理指令:头文件,宏定义等;
    (2)全局声明:全局变量等;
    (3)函数定义;每个函数实现一个或多个功能;
  2. 函数
    程序的所有工作基本都是由函数来完成,函数是程序的基本单元;每个函数都是用来完成一个或多个功能。编写C语言其实主要的工作就是对函数的编写;
    (1)如果是个小项目的话,编写用一个源文件即可;
    (2)如果项目工程量大,则一个源文件不方便维护和修改;根据一定的原则将不同的函数分别归类到不同的源文件中,每个源文件都是一个程序模块;
  3. 函数的组成
    函数的首部和函数体;
int max(int x,int y);  //函数的首部包括:函数类型,函数名,函数属性,函数参数,函数参数类型等等;
{
	//逻辑代码
}	//函数的首部以下两个花括号之间(包括花括号)都是函数体;

  1. 程序总是从main函数开始执行的;

** 在开发环境下从一个工程的建立到生成机器可执行程序**
从源文件建立到可执行文件的过程;
(1)建立工程(项目),在项目里建立若干个源文件;
(2)编辑(保存工程和源文件):编写好代码后将源文件和工程保存;此时在工程文件夹里生成了工程和源文件(.c);
(3)编译(先预编译再编译)
预编译:将写好保存好的源文件(
.c)中的预处理指令(比如头文件)写入到源文件中,替换原来预处理指令的位置,使得每个源文件所包含的预处理指令所有的代码整合到一个源文件中,准备进行正式编译;
编译:先检查语法上的错误,如果有错,就一直报错,挺行编程人员进行改进和调试,知道整个程序语法上没有错误;无错后,编译器将高级语言(整合好的每个源文件)转化为计算机二进制指令(目标文件:obj);
(4)连接目标程序,实现最终整合:
编译后的目标文件(
.obj)不能直接供计算机使用,因为编译是针对每个源程序单独进行的,得到的OBJ也是相对于各个源文件的,此时还缺少一个重要的环节,就是将若干个OBJ文件合成一个最终的文件——可执行文件(executive program),也就是.exe;
(5)运行可执行文件,得到相应的结果;

总结:
建立工程—创建若干源文件—编写程序—编辑(保存)—生成.c文件—预编译—将预处理指令写入各个源文件—编译—检查语法错误直到没有错误—正式编译—将高级语言转化为机器指令(二进制)也即是目标文件.obj—连接—将各个由源文件.c产生的目标文件.obj合成一个完整的二进制机器指令(二进制);

算法:为了解决一个问题而采取的方法和步骤;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值