C语言编程机制

原创 2017年01月03日 10:11:38

       上一篇文章我们简单了解程序如何通过编译器编译然后传给计算机。现在我们来了解一下C语言的使用步骤。当然不一定要按照这些步骤来操作,但我个人觉得这些步骤都是很棒的,变得规范化一点也不是什么坏事吧~~(说明:

这些步骤都是改编自书上的,觉得很好,写下来)

C语言的七个步骤:

       ① 第一,定义目标程序。无论做什么事或者无论用那种语言去编写程序,第一件事要做的肯定是要知道我们对于程序要干什么有个清晰的想法:需要考虑一些需要的数据,需要进行的操作,需要得到什么样的反馈信息。我们可以想个大概的流程,或者画出来更好,这样我们在写程序的时候就会有个很明确的目标。

       ② 第二,设计程序。你知道程序要干什么之后,就要考虑程序如何去实现完成它。界面是怎么样的,程序如何组织最好,什么方法来处理数据等等问题,可能很多人编程都是先动手写,但事先考虑一下也不会浪费很多时间,却很有帮助,能提高效率。

       ③ 第三,编写代码。有了一个清晰的想法和设计之后就可以编写代码了,这就是真正要用到C编程知识的地方。在编写过程中可能会遇到很多细节的问题,或者出现没有预料到的问题,又或者出现了更好的一些想法。但是,相信自己,最后的程序总会完成的。

       ④ 第四,编译代码。就像上一篇文章所讲,程序需要编译后才能被计算机识别分析并执行。其实编译器也是一个程序,它的工作是将你写的源代码转换为可执行代码。(可执行代码是指计算机能直接执行的代码)在编译过程中编译器可能会报错,导致无法编译,那就是程序出现了错误。

       ⑤ 第五,运行程序。程序已经写好,代码已经编译,剩下的就是交给计算机去运行程序了。运行程序是为了检测你写的代码能不能实现你最初的功能。

       ⑥ 第六,测试与调试程序。程序能运行并且功能也能实现是个很好的事情,但这就没有问题存在了吗?就像最早的汽车,也能跑和刹车,但是没有一点安全措施。同样我们的程序中也有许多我们不知道的错误,而调试就是为了发现并修改这些错误。

       ⑦ 第七,维护和修改程序。程序可以运行,而且经过不断的测试和修改错误后比较完善了。但我们可能要拿程序去应对不同的情况或者增加新的功能,又或者要移植到不同的系统中去,这时就是维护和修改程序了。


以上的就是C语言的七个使用步骤,可能不一定严格按照这些步骤来实行,但关键的几步是无论对于谁都一样的。其实我们在写程序的时候已经不知不觉的在按照这些步骤来实行了。

 

       接下来就看看C程序的编程机制。以下的编程机制只是许多C环境所共有的一些方面,只是帮助我们理解编译C程序的一些特定步骤,不是代表所有的C语言程序都这样编译,只能说有一些代表性而已。

       C语言的编译策略就是使用源代码文件转化为可执行文件。

       编译器在将源代码转换为可执行文件时分为两个步骤:编译和链接

       编译器(Complier)将源代码翻译转换为中间代码,链接器(Linker)将中间代码和其他代码结合起来生成可执行文件。下面详细介绍:


第一,编译。

        编译器将我们写的C语言代码(concrete.c)翻译成中间代码。中间代码的形式有多种选择,一般都是选择直接编译成机器语言代码。编译器将翻译完成后的机器语言代码放到一个目标文件,也称为目标代码(concrete.obj)。目标文件里面此时包含翻译的机器语言结果,但是此时目标文件还不能执行,它还不是个完整的程序。


第二,链接。

        编译完成的机器语言之所以还不能执行,是因为缺少启动代码(start-up code)和库代码(library code)。

        启动代码:此代码相当于C语言程序和操作系统的一个接口。两种不同的机器可能拥有相同的机器语言,这时候相同的机器语言代码对于两种机器都会是适用的。但是:如果两个具有相同机器语言的机器拥有不同的操作系统呢?不同操作系统处理程序的方式是不一样的,所以启动代码就是确定程序以何种方式被计算机执行,具体的方式由计算机的操作系统决定。

        库代码:C语言程序中几乎都是使用了标准C库中的函数,我们只在编写代码的时候说明了它,却没有把它包含在目标代码里面,很显然我们需要把它加入进代码里面。


最后,所有需要的东西都到齐了。链接器将目标代码,库代码,启动代码结合在一起,形成最后的可执行文件(concrete.exe)。(其实可以画下流程图,这样会很清楚,可惜我现在还不会用电脑画流程图,所以就没给出来了~~)总结一下:目标文件和可执行文件都是由机器语言指令组成的,但目标文件只包含你编写的代码转换成的机器代码,而可执行文件包含你所使用的库函数和启动代码的机器代码。

 

        剩下的就是具体的编译环境了。C语言的编译环境有很多种:UNIX系统,LINUX系统,集成开发系统(WINDOWS系统)。因为我也没有接触太多的UNIX和LINUX,所以在这两个系统下的C语言编程我是不会的,但应该语法应该不变的,变得只是操作方法。一般编程会使用文本编辑器,但是也可以使用IDE集成开发。因为在学校学习的就是用IDE编程,我使用的是code:blocks软件进行编程。【以后会去了解其他系统的C语言编程】

Code:block官网网址:http://www.codeblocks.org/  可以到官网进行下载,安装的话也是随着向导安装即可。要注意选择适合自己系统的版本。

        最后需要提到的一点就是C语言的标准(C90和C99)不同也会在以后的语法应用中出现问题,只要稍微注意就行。这篇文章是学习导论的最后一章,接下来就是进入C语言知识的学习。

    

版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言程序设计经典50例,会用到的

【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去       掉...

C语言内存机制详解

对于一个C语言程序而言,内存空间主要由五个部分组成代码段(.text)、数据段(.data)、BSS段(.bss),堆和栈组成,其中代码段,数据段和BSS段是编译的时候由编译器分配的,而堆和 栈是程序...

linux下的C语言编程注意事项

一、工具的使用   1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑器,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vi...
  • mfcbest
  • mfcbest
  • 2014年12月17日 15:57
  • 448

Clion安装配置教程 [C语言编程for Windows]

参考http://www.sunmey.cn/thread-129-1-1.html 原文地址:http://www.sunmey.cn/thread-129-1-1.html 1.Clion简介...

ARM使用C语言编程基本规则

在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点充分发挥,使得应用程序的开发时间...
  • kobesdu
  • kobesdu
  • 2014年07月31日 10:18
  • 7530

linux下C语言编程打印log日志

前言        linux的日志系统一直以来都是在linux上开发必学的一部分内容。之前在学习openstack的时候,在对openstack组件的发生的错误进行调试时,老师就说要多看日志的报错...

google c++ styles和华为C语言编程规范总结

一、要记得重构重要性和基本的设计原则 高内聚低耦合MVC架构插件化微内核化架构,依赖倒置接口原则/接口隔离原则,开放关闭原则/里氏原则,迪米特法则/组合优先,单一职责原则。 代码需要不断重构 架构分离...

http协议C语言编程实现

转载:http://zhoulifa.bokee.com/4640913.html HTTP协议的C语言编程实现实例 关键词:http 客户端 RFC2616 协议 下载 大家都很熟悉HTTP...

从C开始_概览_使用C语言编程的几个步骤

一切从C开始,C是我学的第一个编程语言,我希望把他学好,我也希望有兴趣看我贴子的朋友们都能吧他学好,这论坛我也差不多接触了3.4个月,默默的看着一个一个问题被解决,有什么问题都是在这上面搜索,差不多就...
  • Dr_meng
  • Dr_meng
  • 2014年12月11日 18:43
  • 1832

组播原理及 C语言编程

源自:http://blog.163.com/mh_333333333/blog/static/3585491220095199419684/ 摘要:     本文可做为TCP/IP组播技术的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言编程机制
举报原因:
原因补充:

(最多只允许输入30个字)