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语言知识的学习。

    

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

相关文章推荐

Linux第一个c语言编程

#i nclude  #i nclude  int main () {     printf ("Hello, world!\n"); ...

高质量C语言编程习惯和注意事项

高质量C语言编程 1.%d十进制整数;%o 八进制数;%x十六进制数;%u 无符号整型;%s字符串 %l(d…) long数值;%h(d…) short数值;%c一个字符;%f 浮点数 %p...

C语言编程实现对SQlite数据库操作

C语言编程实现对SQlite数据库操作前面两篇文章介绍了SQlite数据库的基本语法和命令,这篇文章主要介绍利用SQlite提供的C接口实现用C语言编程操作数据库。SQlite提供的给C的API在编程...

Linux下C语言编程——时间表示

1.时间表示 头文件:#include 函数:time_t time(time_t *tloc); char *ctime(const time_t *clock); time函数返回1...

linux操作系统下c语言编程入门

linux操作系统下c语言编程入门 整理编写:007xiong 原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)L...

Arm设计思想与高效C语言编程联系

一.RISC设计思想 ARM内核采用RISC体系结构。RISC是一种设计思想,其目标是设计出一套能在高时钟频率下单周期执行,简单而有效的指令集。RISC的设计重点在于由硬件执行的指令的复杂度,这是因...

C语言编程入门——综合练习(一)

至此,C语言的基础知识已经基本学完了,然而你会发现学完C语言,却什么也做不了,当时我学到这里时也是这样,学习编程是一个漫长的过程,前面只是编程语言的基础,后面还会有很长的路要走,希望能够坚持下去。 ...

linux C 常用宏定义

linux C 常用宏定义

开始LINUX C语言编程

这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容:    源程序编译    Makefile的编写    程序库的链接    程序...

读书笔记之《C语言编程技巧程序集》

最近看完了这本书,其中比较重要的东西做了笔记。   1.    整数常量默认是int型,如果常量值超出整形表达范围,则自动变为long int型。 2.    C语言基本类型: int ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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