导航:首页 > 源码编译 > c语言源程序需要经过编译吗

c语言源程序需要经过编译吗

发布时间:2022-06-05 11:56:06

㈠ 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源程序文件是一种文本文件,它首先需要编译器去编译成目标文件,在通过链接器链接库代码才能形成可执行的二进制exe文件。每一个C语言程序必须要经过编译和链接才能被计算机执行,编译是将C源码翻译成机器码,链接是将将二进制目标文件装配成一个具有特定格式的二进制可执行文件,比如Windows平台上是PE格式,一般以.exe为扩展名。 一个C语言程序从源码到计算机系统可以执行,更细致的划分为:预处理——编译——汇编——链接。预处理是对C语言源码进行文本处理,编译阶断是将C源码经C编译器生成汇编代码,汇编阶断是将汇编代码经汇编器生成二进制机器码文件。这两个合拢起来,笼统的可以叫做编译阶断。语言是一门计算机语言,有自己一定的语法。但是,C语言并不能直接被对象所理解,需要将C语言转变成可执行代码,即二进制代码。在C语言转变成二进制可执行代码时,是以工程为单位的。而一个工程中往往会包含多个C文件。因此,需要将每个C文件都编译成二进制代码。此时,每个C文件所对应的二进制代码是独立的。由于工程是一个系统,所以需要将所有的C文件二进制代码链接到一起,形成一个工程的可执行文件。 综上,编译和链接就是指的将C文件转变成二进制代码,并将各个独立的C文件二进制代码链接到一起,形成一个可执行文件的过程。

㈢ 开发一个c语言程序要经过哪四个步骤

开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。

C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。

1、预处理:输入源程序并保存(.C文件)。

2、编译:将源程序翻译为目标文件(.OBJ文件)。

3、链接:将目标文件生成可执行文件( .EXE文件)。

4、运行:执行.EXE文件,得到运行结果。

(3)c语言源程序需要经过编译吗扩展阅读:

C语言代码变为程序的几个阶段:

1、首先是源代码文件test.c和相关的头文件,如stdio.h等被预处理器cpp预处理成一个.i文件。经过预编译后的.i文件不包含任何宏定义,因为所有的宏已经被展开,并且包含的文件也已经被插入到.i文件中。

2、编译过程就是把预处理完的文件进行一系列的词法分析、语法分析、语义分析以及优化后产生相应的汇编代码文件,这个过程往往是我们所说的整个程序的构建的核心部分,也是最复杂的部分之一。

3、汇编器不直接输出可执行文件而是输出一个目标文件,汇编器可以调用ld产生一个能够运行的可执行程序。即需要将一大堆文件链接起来才可以得到“a.out”,即最终的可执行文件。

4、在链接过程中,对其他定义在目标文件中的函数调用的指令需要被重新调整,对实用其他定义在其他目标文件的变量来说,也存在同样问题。

参考资料来源:网络-c语言

㈣ 用C语言编写的代码程序( B ) A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)

C语言写的代码程序肯定是源程序,B是对的,它不能立即执行,必须经过编译成可执行代码,

所以A是错误的;

如果这个源程序中不含有main函数,编译后的代码也是不可执行的,所以C是错误的;

C语言不是解释执行的,D也不正确。

(4)c语言源程序需要经过编译吗扩展阅读:

A 源程序

被编译之后叫做B 编译程序 写源代码的过程叫D编辑程序

被编译之后组成的可执行的程序集叫C可执行程序

c语言是高级语言,写出来的程序是源程序,需用相应的编译程序将其翻译成机器语言的目标程序,再把目标程序和各种标准库函数连接装配成一个完整的可执行机器语言,然后才能执行。

㈤ 一个C语言源程序经过编译后就可以执行了 这句话对吗

对的,C语言是先编译后执行,一般只要不出错误,编译完就可以执行力。有时候还要考虑是否跨平台。

㈥ c语言为何需要编译和连接才能运行

的文件(也称为源代码)而已,需要经过1定的处理才能转换成机器上可运行的可履行文件。
我们将对C语言的这类处理进程称为编译与链接。

㈦ c语言中的源程序必须经过编译连接生成可执行程序才能运行,这句话是对不对

哥们,这么理解是对的,不过感觉有点表面。
建议看看计算机一些原理,像你说的这个问题我会想到,计算机最终只能识别二进制码,
所以其实不管我们一切啥语言,最终都是通过编译器编译成二进制码,计算机才能识别
而去运行,而c语言编写的程序,肯定是要经过一系列的编译,链接,生成可执行的文件。
在windows系统中,执行文件都是.exe为扩展名的。不过在linux系统中就不一样了,linux
系统并不区分扩展名,所以也就无所谓什么.exe之类的文件,只要知道最终生成可执行的
二进制文件就可以了。

㈧ 在vc环境中,一个c语言源程序要经过编辑、编译、和什么后才能执行

连接

编译是生成目标代码
和相关库一起连接后 生成可执行文件

才能执行

㈨ 一下叙述中正确的是A) c语言的源程序不必通过编译就可以直接运行B)c语言中的每条可执行的语句最终都将

A是错误的。C语言是通过编译计算机才能执行,因为计算机执行的是二进制码,而C语言却是人类能够读懂的语言,要通过编译程序(或者是汇编编写的或者是用C语言编写的)编译之后把指令送到CPU的指令存储器然后根据CPU的时钟信号一条以条的来执行指令所指示的“微指令”。

B选项没有描述清楚。

㈩ 在计算机上运行一个C语言编写的程序,要经过怎样的处理过程

开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。

C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。

1、编辑:输入源程序并保存(。C文件)。

2、编译:将源程序翻译成目标文件(。OBJ文件)。

3、连接:将目标文件转换成可执行文件。EXE文件)。

4、运行:执行。EXE文件,得到运行结果。

(10)c语言源程序需要经过编译吗扩展阅读:

C代码变成程序的阶段:

1、首先,源代码文件test。c和相关的头文件,如stdio。h,由预处理程序CPP预处理为一个。我的文件。这是预编译。I文件不包含任何宏定义,因为所有宏都已展开,所包含的文件都已插入其中。我的文件。

2、编译过程就是对预处理后的文件进行一系列的词法分析、语法分析、语义分析和优化,从而产生相应的汇编代码文件。这个过程通常是整个程序构造的核心部分,也是最复杂的部分之一。

3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成一个可以运行的可执行程序。为了得到最终的可执行文件“A.out”,需要将一大堆文件链接在一起。

4、在链接过程中,调用其他目标文件中定义的函数的指令需要重新校准,使用其他目标文件中定义的变量的指令也需要重新校准。

阅读全文

与c语言源程序需要经过编译吗相关的资料

热点内容
傅氏算法和积分算法 浏览:176
安卓十怎么下降到安卓九 浏览:221
windows压缩tar 浏览:397
写作基础pdf 浏览:744
redis30php扩展 浏览:517
小米手机发布源码 浏览:611
程序员一般什么发音 浏览:280
阿里云java服务器 浏览:217
51单片机读取sd卡程序 浏览:821
初中学习单片机知识 浏览:357
安卓手机如何下苹果官网 浏览:37
linuxpython脚本运行 浏览:855
vs中编译在哪 浏览:454
linuxshell安装 浏览:761
qq邮箱发压缩包 浏览:196
做程序员需要跳槽吗 浏览:394
程序员进度考核 浏览:842
单片机编译picc 浏览:974
php获取当前url域名 浏览:338
丁字框架梁处用加密吗 浏览:682