① 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程序的步骤
(1)上机输入和编辑源程序。通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内(如果不特别指定,一般存放在用户当前目录下),文件用.c作为后缀,生成源程序文件,如f.c。
(2)对源程序进行编译,先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。例如,对于#include<stdio.h>指令来说,就是将stdio.h头文件的内容读进来,取代#include<stdio.h>行。由预处理得到的信息与程序其他部分一起组成一个完整的、可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译。
编译的作用首先是对源程序进行检查,判定它有无语法方面的错误,如有,则发出“出错信息”,告诉编程人员认真检查改正。修改程序后重新进行编译,如果还有错,再发出“出错信息”。如此反复进行,直到没有语法错误为止。这时,编译程序自动把源程序转换为二进制形式的目标程序(在Visual C++中后缀为.obj,如f.obj)。如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失。
在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成。用户不必分别发出二次指令。
(3)进行连接处理。经过编译所得到的二进制目标文件(后缀为.obj)还不能供计算机直接执行。前面已说明:一个程序可能包含若干个源程序文件,而编译是以源程序文件为对象的,一次编译只能得到与一个源程序文件相对应的目标文件(也称目标模块),它只是整个程序的一部分。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program),在Visual C++中其后缀为.exe,如f.exe。
即使一个程序只包含一个源程序文件,编译后得到的目标程序也不能直接运行,也要经过连接阶段,因为要与函数库进行连接,才能生成可执行程序。
以上连接的工作是由一个称为“连接编辑程序”(linkage editor)的软件来实现的。
(4)运行可执行程序,得到运行结果。
以上过程如图1.2所示。其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译源程序,找出问题,修改源程序,并重新编译,直到无错为止。有时编译过程未发现错误,能生成可执行程序,但是运行的结果不正确。一般情况下,这不是语法方面的错误,而可能是程序逻辑方面的错误,例如计算公式不正确、赋值不正确等,应当返回检查源程序,并改正错误。
为了编译、连接和运行C程序,必须要有相应的编译系统。目前使用的很多C编译系统都是集成开发环境(IDE)的,把程序的编辑、编译、连接和运行等操作全部集中在一个界面上进行,功能丰富,使用方便,直观易用。
③ C语言中一个程序写完后怎么运行啊
当编写完一个程序后,需要首先进行编译,然后再运行。
如下图所示,程序编写完毕后,点击工具栏中的Execute,选择compile(编译)。
如果没有错误,再选择Execute,选择run(运行)。
(3)c语音编译执行程序扩展阅读:
dll因为某些原因(最大的可能是因为它是个病毒或流氓软件的dll文件,被杀软删除了)丢失了,但其相关的注册信息却还在,导致系统开机时还加载它,却又找不到它的文件,所以报错。
如果你点击“确定”后,系统没有什么不正常,并且可以正常运行的话,你可以用这个软件清理掉这个开机加载项,以后开机穗运就不会出现这个信息了。
下载和枣睁安装编译器凳族岁。C语言需要通过编译器解释为计算机可以理解的机器码。 编译器通常是免费的, 不同的操作系统上一般使用不同的编译器。
对于Windows系统, 可以尝试 Microsoft Visual Studio Express,其是Windows平台上最流行的多语言IDE(集成开发环境),其集成了Microsoft开发的C语言编译器。对于OS X系统, Xcode是一款优秀的多语言IDE,其集成了C语言的编译器。对于Linux, gcc是一个不错的也是最流行的选择。
④ c++怎么编译运行
c语言经常使用的程序,就有代码的循环执行,c语言实现代码的循环执行。
电脑:华为MateBook14
系统:Windows10
软件:c语言1.0
1、第一首先打开编辑代码的软件。再定义一个int类型的变量a。
⑤ c语言编译后如何运行
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%3==0&&n%5==0&&n%7==0)
printf("%d:这个数能被3,5,7整除",n);
else
printf("不,它不能");
return 0;
}
⑥ C语言编写好代码后,怎么编译,最后生成可执行文件
材料/工具:vc6.0
1、打开c语言编辑工具,在工具中写入程序的源代码。
⑦ 如何编译并运行C语言程序
1、创建一个文件名为main.c,然后用任意一个款你熟悉的文本编辑软件,比如说记事本,在里面输入下面的代码,记住,要用文本文件编辑软件,不能用word的。
c语言小游戏实现原理
1、二维数组实现棋盘
二维数组,用两个for 循环,随便输出一个固定符号做棋盘,如 *
2、判定玩家
设计一个计步变量step, 每走一步 step++, 则玩家=step%2+1;
3、判定输赢(重点)
设计方向数组 dircX[4] ,dircY[4],因为如果要判断是否练成五子,只有1竖着2横着3斜下4斜上
竖着的话就是 x-1,y不变
横着的话就是x不变,y+1; 斜下: x+1,y+1; 斜上 x-1;y+1
这样你就可以赋值dircX={-1,0,1,-1} dercY={0,1,1,1}
每当玩家落下一子,就全局判断每个子的四个方向有没有第二子,如果有,循环判断有没有第三子(利用 x+=dircX[1]),直到五子完成,结束。
⑧ c语言和python语言均采用编译方式执行程序对吗
C语言和Python语言虽然均可用于编写计算机程序,但它们在执禅念销行方式上略有不同。C语言是一种编译型语言,程序需要先经过编译器的编译过程,将源代码转换为机器语言,在计算机上运行时直接执行机器语言程序。与之不同,Python是一种解释型语言,可以直接执行Python程序,无需先按照C语言那样进行编译。Python解释器将Python代码作为输入,边解释边执行,直到程序结束高慧。相比较而言,编译型语言的程序一般更高效,但执行之前需要额外的编译过程;而解释型语言的程序则更加灵活,但需贺游要消耗更多的计算资源。
⑨ C语言既可以编译执行又可以解释执行吗 编译执行怎么解释 解释执行又怎么解释
C 语言程序仅可以解释执行。
解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序是把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。
相对于编译性语言,其优点是可移植性好,只要有解释器环境,程序就可以在不同的操作系统上运行。
缺点是代码需要有专门的解释器,在程序运行时,除要给用户程序本身分配内存空间外,解释器也占用系统资源,所以其运行速度较慢。另外,也很难达到像C、C++那样操作系统底层操作的目的。握拍返
解释型语言常用于,一是对运行速度要求不高(如一些网页脚本等)的场合,二是对跨平台(贺贺操作系统的兼容性)有要求的场合。
(9)c语音编译执行程序扩展阅读
1、Python和Java语言,专门有一个解释器能够直接执行Python程序,每个语段饥句都是执行的时候才翻译。
2、Python代码在运行前,会先编译成中间代码,每个 .py 文件将被换转成pyc 文件,pyc 就是一种字节码文件,它是与平台无关的中间代码。不管放在 Windows 还是 Linux 平台都可以执行,运行时将由虚拟机逐行把字节码翻译成目标代码。
⑩ 为什么C语言程序编译正确但不能执行
因为你的c没有初值,while循环无法进行。另外你的算法也有问题,while循环可改为while(m%n!=0),循环结束后最小公约数时n。