当前位置:首页 » 编程软件 » c语言编译时处理

c语言编译时处理

发布时间: 2023-03-19 16:26:23

c语言编写好代码后,怎么编译,最后生成可执行文件

材料/工具:vc6.0

1、打开c语言编辑工具,在工具中写入程序的源代码。

⑵ c语言程序编译过程包括哪四个

C语言编译过程分成四个步骤: 
1,由.c文件到.i文件,这个过程叫预处理 
2,由.i文件到.s文件,这个过程叫编译 
3,由.s文件到.o文件,这个过程叫汇编 
4,由.o文件到可执行文件,这个过程叫链接
用gcc查看预处理过程(假设源文件叫hello.c) 
gcc -o hello.i hello.c -E 
然后用 vi hello.i 即可查看生成的预处理文件
按ESC 输入:$ 跳到预处理文件 可看到hello.c源码
宏的本质:预处理阶段的单纯的字符串替换
预处理阶段,不考虑C语法

⑶ 怎样用c语言编译

C编译的整个过程很复杂,大致可以分为以下四个阶段:

  1. 预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

  2. 编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

  3. 汇编阶段将汇编语言翻译成机器指令。

  4. 链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

⑷ C语言程序编译时程序中的注释部分是否参加编译

可以参加。所谓注释,便是用自然语言对源代码中某些语句或方法进行说明。并且注释的内容不会被编译器编译。可以在源代码中添加任何想要添加的说明。

注释可以出现在代码中的任何位置,用来向用户提示或解释代码的含义。程序编译时,会忽略注释,不做任何处理,就好像它不存在一样。

如需要注释的内容比较多,一行写不完,如果在每一行注释中都使用//。当然这种方法比较繁琐,看起来页面也不够简洁。这时候,就需要用到多行注释。多行注释还有一种不够简洁的注释方式,那就是嵌套在代码语句中。

(4)c语言编译时处理扩展阅读

使用注释的例子的源代码

/*

源世界整理,www.yuanshijie.top

*/

#include <stdio.h>

int main()

{

/* puts 会在末尾自动添加换行符 */

puts("http://www.yuanshijie.top");

printf("源世界博客 "); //printf要手动添加换行符

return 0;

⑸ C语言“编译预处理命令”,是什么意思

所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动对源程序编译

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

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

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

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

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

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

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

(6)c语言编译时处理扩展阅读:

C代码变成程序的阶段:

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

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

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

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

⑺ C语言编译执行的全过程是怎样的

不明白楼主什么意思,就是先把你的代码转为汇编代码,然后转为二进制文件,读入内存执行。

⑻ C语言的编译系统对宏命令的处理

前言:宏实质就是编译器在对代码进行编译之前进行的一个“查找替换”工作,就跟你在处理文档时用WPS/WORD/记事本等进行“查找替换”操作一样。
C语言的编译系统对宏命令的处理是()
A。在程序运行时进行的
B。在对源程序中其他成分正式编译之前进行的
C。在程序连续时进行的则饥
D。和C程序中的其他语句同时进行编译
答:选B。在对源程序中其他成分正式编译之前进行的
2,
#define
N
2
/*
在预编译时将用下面代码中N替换成2
*/
#define
M
N+1
/*
在预编译时将M替换成N+1(即2+1,N会再被替换成2)*/
#define
NUM
2*M+1
/*
如上:在预编译时NUM替换成2*M+1,即2*N+1+1,即2*2+1+1*/旁歼
main()
{int
i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
/*
*
如上所述,上句展开运盯冲为:for(i=1;i<=2*2+1+1;i++)printf("%d\n",i);
*
所以:循环将执行6次
*/
}
/*
切记注意:每一个宏百进行替换时只是替换“正文”中的内容,而不包括预编译语句的内容,
否则就会像不少人理解的那样,错误地认为第2个题中的循环将执行7次
*/

⑼ C语言中 “编译时处理” 与 “预处理” 两个概念的区别

浩强哥的教材中说的很清楚,可以参考。简单来说,C语言程序在编译前,其实是有一个预备工作的,这个就是“预处理”,可以理解为:人类所编写的程序,需要转化为机器能够编译的合理输入文件。机器编译,就是按照语法来处理语句,一些语句或者逻辑是在编译时才有意义,才进行分析,这就是“编译时处理”。

⑽ C语言编译系统对宏替换的处理是在什么时候进行的

是正式工作开始之前的准备工作,所以宏替换是在对程序编译之前进行的。

宏替换是C/C++的预处理中的一部分,对于宏定义中的形参,在替换列表中,如果不是作为#或##的操作数,那么将对应实参完全展开(相当于对实参进行求值),然后将替换列表中的形参替换掉,如果是#或##的操作数。

(10)c语言编译时处理扩展阅读:

宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力。

计算机语言如C语言或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。

宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。

热点内容
linuxtty1 发布:2024-05-07 13:40:10 浏览:863
linuxshell脚本中if 发布:2024-05-07 13:25:01 浏览:221
phpmysql扩展 发布:2024-05-07 13:25:01 浏览:800
星密码开网店怎么样 发布:2024-05-07 13:23:26 浏览:354
安卓手机java模拟器 发布:2024-05-07 12:43:07 浏览:913
c语言java哪个好学 发布:2024-05-07 12:35:16 浏览:335
奥特曼访问 发布:2024-05-07 12:34:38 浏览:894
离线存储本地存储 发布:2024-05-07 12:30:23 浏览:413
win764sql2000安装 发布:2024-05-07 12:18:07 浏览:78
beego上传文件 发布:2024-05-07 11:59:20 浏览:211