简单描述一个c程序的运行过程。

简单描述一个c程序的运行过程。,第1张

首先建立源代码(生成c或者cpp文件),然后编译(生成o文件),最后链接(生成可执行文件,windows下是exe文件。)

举个例子:

lizicpp(编写代码文件)

lizio(编译后生成文件)

liziexe(链接后生成可执行文件)

C语言编译过程分成四个步骤: 

1,由c文件到i文件,这个过程叫预处理 

2,由i文件到s文件,这个过程叫编译 

3,由s文件到o文件,这个过程叫汇编 

4,由o文件到可执行文件,这个过程叫链接

用gcc查看预处理过程(假设源文件叫helloc) 

gcc -o helloi helloc -E 

然后用 vi helloi 即可查看生成的预处理文件

按ESC 输入:$ 跳到预处理文件 可看到helloc源码

宏的本质:预处理阶段的单纯的字符串替换

预处理阶段,不考虑C语法

编译——连接——运行

——运行后系统调用main函数,从main函数入口重头开始运行的main函数结束(main函数的花括号就是main函数的范围),如果中间与调用函数,则跳到调用函数位置运行,运行的函数结尾后返回调用函数的吓一跳指令继续执行。

第一题答案:

605

705

运行过程:首先 struct xscj xs[]={{1,60,61},{2,70,71}};这条语句是对结构体数组xs赋初值,{1,60,61}分别赋值给xs[0]n=1, xs[0]cj1=60, xs[0]cj2=61;xs[0]cj3未赋值。同理,{2,70,71}分别赋值:xs[1]n=2, xs[1]cj1=70, xs[1]cj2=71;xs[1]cj3未赋值

其次,

for(i=0;i<2;i++){

xs[i]cj3=(xs[i]cj1+xs[i]cj2)/2;

printf("%51f\n",xs[i]cj3);

}

这条语句是分别对xs[1],xs[2]的cj3字段赋值,赋值为(cj1+cj2)/2的值。输出语句  printf("%51f\n",xs[i]cj3);限定了输出宽度和小数点位数,故输出605 和 705

2第二题填空:stname     @stage

首先明白scanf的格式:

scanf("格式化字符串",变量地址表);

      “变量地址表”是接受输入数据的变量的地址。第一个输入格式是%s,接收字符串,字符串名字即为首地址,所以直接stname就可以了;第二个格式是%d,接收整型数据,所以必须取地址,使用取地址符号&,所以第二空答案就是&stage

用单步执行,VC下面是

按键F10

就是键盘上面最上面一行的F数字按键·~~~~

进行一步一步的执行,下面的窗口可以设定跟踪变量

在TC里面则是

F7、F8进行单步执行(其中一个是跳过被调用函数,好像是F8)

按键Ctrl+F7组合可以加入跟踪变量的结果显示~~~~

其他编译器一般没有支持调试的,再次就不说了·~~~~

顺序执行,从main函数开始,顺序执行。

遇到调用的其它函数就先运行函数,然后继续执行主函数下面的语句。

当整个程序编写好后,编译器先编译,再连接各种库函数,然后执行程序。

以上就是关于简单描述一个c程序的运行过程。全部的内容,包括:简单描述一个c程序的运行过程。、c语言程序编译过程包括哪四个、简述c语言的运行过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存