当前位置:首页 » 编程软件 » c从编译到执行

c从编译到执行

发布时间: 2022-02-16 10:00:27

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语言编译代码 转换为可执行程序

下载VS2008……或者GCC
直接GCC -o yourproc yourfile.c

㈣ 在C语言中,完成C源文件编辑后到生成执行文件的步骤是什么

编译链接,期间查找错误并更正,重复编译链接过程,知道修改正确。然后得到可执行文件。

㈤ 计算机c语言 为什么经过编译就可以执行,没有经过连接

C语言是通过编译器与电脑进行交流。不用经过连接。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

㈥ C语言的编译和运行按什么键

编译F9 运行Ctrl+F9
不同的编译器命令快捷键略有不同。
下面是Visual Stdio的命令快捷键列表:
CTRL + SHIFT + B
生成解决方案

CTRL + F7
生成编译

CTRL + O
打开文件

CTRL + SHIFT + O
打开项目

CTRL + SHIFT + C
显示类视图窗口

F4
显示属性窗口

SHIFT + F4
显示项目属性窗口

CTRL + SHIFT + E
显示资源视图

F12
转到定义

CTRL + F12
转到声明

CTRL + ALT + J
对象浏览

CTRL + ALT + F1
帮助目录

CTRL + F1
动态帮助

F1
帮助

SHIFT + F1
当前窗口帮助

CTRL + ALT + F3
帮助-搜索

SHIFT + ALT + ENTER
全屏显示

CTRL + -
向后定位

CTRL + SHIFT + -
向前定位

CTRL + F4
关闭文档窗口

CTRL + PAGE DOWN
光标定位到窗口上方

CTRL + PAGE UP
光标定位到窗口下方

CTRL + F6
CTRL + TAB
下一个文档窗口

CTRL + SHIFT + F6
CTRL + SHIFT + TAB
上一个文档窗口

ALT + F6
下一个面板窗口

CTRL + K, CTRL + L
取消remark

CTRL + K, CTRL + C
注释选择的代码

CTRL + K, CTRL + U
取消对选择代码的注释

CTRL + M, CTRL + O
折叠代码定义

CTRL + M, CTRL + L
展开代码定义

CTRL + DELETE
删除至词尾

CTRL + BACKSPACE
删除至词头

SHIFT + TAB
取消制表符

CTRL + U
转小写

CTRL + SHIFT + U
转大写

CTRL + SHIFT + END
选择至文档末尾

CTRL + SHIFT + HOME
选择至文档末尾开始

SHIFT + END
选择至行尾

SHIFT + HOME
选择至行开始处

SHIFT + ALT + END
垂直选择到最后尾

SHIFT + ALT + HOME
垂直选择到最前面

CTRL + A
全选

CTRL + W
选择当前单词

CTRL + SHIFT + PAGE UP
选择至本页前面

CTRL + SHIFT + PAGE DOWN
选择至本页后面

CTRL + END
文档定位到最后

CTRL + HOME
文档定位到最前

CTRL + G
转到…

CTRL + K, CTRL + P
上一个标签

CTRL + K, CTRL + N
下一个标签

ALT + F10
调试-ApplyCodeChanges

CTRL + ALT+ Break
停止调试

CTRL + SHIFT + F9
取消所有断点

CTRL + F9
允许中断

CTRL + SHIFT + F5
调试-重新开始

F5
运行调试

CTRL + F5
运行不调试

F10
跨过程序执行

F11
单步逐句执行

CTRL + J
列出成员

CTRL + PAGE DOWN
下一个视图

CTRL + B
格式-粗体

CTRL + SHIFT + T
格式-文字缩进

㈦ c语言一次完成编译、连接和执行用什么键

C/C++语言的完整编译过程是 一、预编译 处理#define #if #include这类#开头的语句,这些称为预编译指令。这个过程中会把.h文件和.c/.cpp文件组合成最终交给compile过程的原文件。这个原文件是不包含任何#开头的语句的。所有#define定义的宏也会被替换。 二、编译把上面那个原文件编译成.o或者VC里是.obj文件。这个文件保存了机器码化的函数、函数的描述、全局变量的描述、乃至段的描述等等。 三、连接把可执行程序需要的所有的编译过程产生的.o或者.obj文件组合到一起。(这里也包括.lib文件,.lib文件件本质上就是打包的.obj文件集合)。另外连接过程还会组合一些其他数据,比如资源、可执行文件头等等。

㈧ 如何编译并运行C语言程序

1、创建一个文件名为main.c,然后用任意一个款你熟悉的文本编辑软件,比如说记事本,在里面输入下面的代码,记住,要用文本文件编辑软件,不能用word的。

(8)c从编译到执行扩展阅读:

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语言编译执行的全过程是怎样的

预处理阶断:这个就是那些#include啥的。
编译阶断:把C语言的代码转成汇编语言代码,比如 int a = 2; 它会生成mov a, 2;
汇编阶断:把汇编代码转换成机器码,比如把mov a , 2 ; 转成 cd07 (mov指令的机器码中的一种机器码)
链接阶断:制作成一个可执行文件,比如windows是PE的可执行文件,linux是elf的可执行文件,要制作成可以运行的程序。

㈩ c语言编译成可执行文件后

除非你在你的源程序里加一句system("pause");//请求程序暂停
记得要包含问价#include <stdlib.h>
或者加个其他的一类语句想输入语句都可

热点内容
mt4ea源码 发布:2025-03-21 23:59:08 浏览:531
文件夹加密隐藏 发布:2025-03-21 23:56:24 浏览:16
setjava用法 发布:2025-03-21 23:54:59 浏览:181
spring配置的主要标签有哪些 发布:2025-03-21 23:54:57 浏览:173
python3range 发布:2025-03-21 23:42:56 浏览:346
安卓国外手机在哪个平台买 发布:2025-03-21 23:39:40 浏览:117
androidx86卡 发布:2025-03-21 23:38:06 浏览:804
linux限制访问目录权限 发布:2025-03-21 23:35:19 浏览:415
海泰克如何使用密码 发布:2025-03-21 23:35:17 浏览:640
php连接加密 发布:2025-03-21 23:18:55 浏览:833