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