作者:ninjas5 | 来源:互联网 | 2023-01-30 17:40
在计算机上运行一个C语言编写的程序,要经过怎样的处理过程开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具
在计算机上运行一个C语言编写的程序,要经过怎样的处理过程
开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。
C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
1、编辑:输入源程序并保存(。
2、编译:将源程序翻译成目标文件(。OBJ文件)。
3、连接:将目标文件转换成可执行文件。
EXE文件)。
4、运行:执行。EXE文件,得到运行结果。
扩展资料:
C代码变成程序的阶段:
1、首先,源代码文件test。c和相关的头文件,如stdio。h,由预处理程序CPP预处理为一个。
这是预编译。I文件不包含任何宏定义,因为所有宏都已展开,所包含的文件都已插入其中。
2、编译过程就是对预处理后的文件进行一系列的词法分析、语法分析、语义分析和优化,从而产生相应的汇编代码文件。这个过程通常是整个程序构造的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。
汇编程序可以调用LD来生成一个可以运行的可执行程序。为了得到最终的可执行文件“A.out”,需要将一大堆文件链接在一起。
4、在链接过程中,调用其他目标文件中定义的函数的指令需要重新校准,使用其他目标文件中定义的变量的指令也需要重新校准。
C语言源程序到运行程序经过哪几个步骤
1、预处理
在这一阶段,源码中的所有预处理语句得到处理,例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。
根据#ifdef,#if等语句的条件是否成立取舍相应的部分,预处理之后源码中不再包含任何预处理语句。
GCC预处理阶段可以生成.i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。
例如:gcc -E -o hello.i hello.c
2、编译
这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。
可以通过选项-S使GCC在进行完编译后停止,生成.s的汇编程序。例如:gcc -S -o hello.s hello.c
3、汇编
这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为.o的目标文件中。
当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成.o目标文件后,才能进入下一步的链接工作。
目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件:gcc -c -o hello.o hello.c
4、链接
经过汇编以后的机器代码还不能直接运行。
为了使操作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。gcc -o hello hello.c
5、运行:执行.EXE文件,得到运行结果。
C语言程序运行过程
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序–>可执行文件1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理[析] 伪指令主要包括以下四个方面(1)宏定义指令,如#define Name TokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。
对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。
(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉(3)头文件包含指令,如#include “FileName”或者#include 等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。
采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。
包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号(”")。
(4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。
C语言程序的运行步骤
当编写完一个程序后,需要首先进行编译,然后再运行。
如下图所示,程序编写完毕后,点击工具栏中的Execute,选择compile(编译)。
如果没有错误,再选择Execute,选择run(运行)。
扩展资料:
dll因为某些原因(最大的可能是因为它是个病毒或流氓软件的dll文件,被杀软删除了)丢失了,但其相关的注册信息却还在,导致系统开机时还加载它,却又找不到它的文件,所以报错。
如果你点击“确定”后,系统没有什么不正常,并且可以正常运行的话,你可以用这个软件清理掉这个开机加载项,以后开机就不会出现这个信息了。
下载和安装编译器。C语言需要通过编译器解释为计算机可以理解的机器码。
编译器通常是免费的, 不同的操作系统上一般使用不同的编译器。
对于Windows系统, 可以尝试 Microsoft Visual Studio Express,其是Windows平台上最流行的多语言IDE(集成开发环境),其集成了Microsoft开发的C语言编译器。对于OS X系统, Xcode是一款优秀的多语言IDE,其集成了C语言的编译器。
对于Linux, gcc是一个不错的也是最流行的选择。
上机操作c语言程序一般经过哪些步骤
编辑源代码。二、把源码编译成目标程序(二进制程序)三、把目标程序和其它库文件链接起来形成可执行程序四、调试、运行程序五、如果有错误,再从头开始执行。
上机输入和编辑源程序。
通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内(如果不特别指定,一般存放在用户当前目录下),文件用.c作为后缀,生成源程序文件,如f.c。
简述开发一个c语言程序的步骤是什么样的?
1 写代码。这是最基础的一步,即实现C语言的源文件(.c,必需),和可能的头文件(.h,非必需)。
2 编译。
将编写好的代码,通过编译工具,转换为目标文件。此步中,会对文件内部及包含的头文件进行语法语义的分析检查。如果出错,则必须返回到一步对代码进行修改,直到没有错误为止。
3 链接。
将目标文件链接成可执行文件。此步会对文件直接的关联进行检查。如果出错需要返回到1修改代码。
直到没有错误。
4 运行。这个是最后一步,也是C语言的最终目的。
5 在运行结果与期望不符时,需要检查原因,修改代码,重新执行一二三直到程序没有问题。
(1)语言简洁、紧凑灵活。二十八个关键字、九种控制语句,程序形式自由,运算符丰富。
三十四种运算符。
(2)数据类型丰富,具有现代语言的各种数据结构。
(3)C程序的主要结构是函数,是完全模块化和结构化的语言。
(4)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。
兼有高级和低级语言的特点。
(5)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。
(6)目标代码质量高,程序执行效率高。
只比汇编程序生成的目标代码效率低10%-20%。
(7)语法限制不太严格,程序设计自由度大。