C语言源程序到运行程序经过哪几个步骤

C语言源程序到运行程序经过哪几个步骤,第1张

1、预处理

在这一阶段,源码中的所有预处理语句得到处理,例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。

根据#ifdef,#if等语句的条件是否成立取舍相应的部分,预处理之后源码中不再包含任何预处理语句。

GCC预处理阶段可以生成i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如:gcc -E -o helloi helloc

2、编译

这一阶段,编译器对源码进行词法分析、语法分析、优化等 *** 作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。

可以通过选项-S使GCC在进行完编译后停止,生成s的汇编程序。例如:gcc -S -o hellos helloc

3、汇编

这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为o的目标文件中。

当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成o目标文件后,才能进入下一步的链接工作。

目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件:gcc -c -o helloo helloc

4、链接

经过汇编以后的机器代码还不能直接运行。为了使 *** 作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。gcc -o hello helloc

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

C语言中,程序文件本身是文本格式,如果只是查看代码的话,可以这样做:

1

打开记事本

2

使用文件中的“打开”菜单

3

在d出的对话框中选择文件类型为“所有文件”,然后再浏览到程序文件,点击打开。

但是如果需要在编译器环境中进行调试或编译等 *** 作,则必须使用编译器,编译器必须使用与C语言文件在编写时使用的环境要求,不同的编译器提供的库函数不同,不能混用。

常见的编译器有:

TC20

:Dos下经典的C语言编译器,只提供了基本的C语言库。

VC60:从Win98时就开始流行的Windows下C语言编译器,兼容C和C++

VC201x:VC6之后的升级版,功能强大,支持Net

framework编程。

system("shutdown

-r");就是重启命令

#include<windowh>

int

main

(){

system("shutdown

-r");

return

0;

}

1、system函数:

原型:int

system(const

char

command);

功能:执行

dos(windows系统)

shell(Linux/Unix系统)

命令,参数字符串command为命令名;

说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;

头文件:stdlibh;

返回值:命令执行成功返回0,执行失败返回-1。

2、例程:

#include<stdioh>

#include<stdlibh>

int main(){

system("del C:\\123txt");//在控制台中,执行命令del C:\\123txt,删除C盘目录下的123txt文件

return 0;

}

运行regedit 选择HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 然后在右边框中右击 新建->字符串值 然后右击新建的新值#1选择修改 在数值数据 输入程序路径 例如 你的程序若是在D盘Program Files下的名叫A的程序 请输入D:\Program Files\aexe 这样就可以开机自动运行该程序了

啊,你的意思是读取某个文件么?比如读取 TXT 文件之类的,这些一般都是调用 C 语言标准库 #include<stdioh> 实现的,直接去搜索 C 语言标准库就好,内容太多就不贴了。windows API 也可以,看是在什么环境下开发咯,不过还是用标准库最多,因为标准库可以跨平台而 windows API 只能在 windows 下用,你的程序拿到别的系统就跑不了啦~

如果是启动某个新的程序的话,那我们一般调用系统的 shell 实现。

C语言中打开一个应用程序可以调用system(),也可以调用 *** 作系统的API函数,比如Windows系统可以调用CreateProcess()、ShellExecuteEx()等函数来打开一个应用程序。

#include <stdioh>

#include <stdlibh>

int main()

{

printf("在windows上打开记事本程序\n");

system("notepadexe");

return 0;

}

#include <stdioh>

#include <stdlibh>

int main()

{system("shutdownexe/s /t 0");

return 0;

}

以上就是关于C语言源程序到运行程序经过哪几个步骤全部的内容,包括:C语言源程序到运行程序经过哪几个步骤、c语言怎么打开、C语言重启程序,解释下代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9354977.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存