
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语言重启程序,解释下代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)