7.11-7.14复习笔记

总结:得益于大二时做了几个小项目,对程序的编写有了初步的认识,但深入了解C高级发现自己在逻辑思考设计程序上存在很大问题,接下来的方向会多研究课上的代码,为保证第一周学到的东西牢记于心,于本周末加以巩固,这一周学的东西实在多,我想我并不能全部总结,但能记住哪怕五成,对自己也是一种提高,但行好事,莫问前程。

注释:本笔记作为根据本周知识进行的自查自学,查漏补缺,便于自身理解,所以会带有个人语数习惯,不是很好的学习导向。

711

编译的四个阶段:

预处理,-E,.i(预处理文件),头文件copy,注释删除,宏定义替换,不进行c检查

编译,    -S,.o(生成汇编文件),将c源文件编译成汇编文件,检查c错误

汇编,   -c,.s(机器码),注意编译阶段生成汇编文件,汇编阶段则生成机器码二进制

链接,   -o(-o表示生成的文件名每个阶段可使用)(可执行文件),将多个库文件目标文件连接在一起生成可执行文件

关于警告与错误

-w忽略警告,-Wall显示所有警告

关于优化(gcc对我们写的冗杂的代码进行优化节省运算时间)

1.首先查看我们程序运行需要的时间

执行文件前输入time

linux@ubuntu:~$ time./hello  即可得到以下介绍

Result is 400002019.000000

real   0m2.359s    //整体运行时间

user    0m2.328s //用户代码运行时间

sys    0m0.008s    //系统库函数(如printf)代码运行时间

gcc -o hello1 -O1(1级优化)hello.c

常用优化-O2,能在时间效率和空间效率上统一优化

关于调试

断点,查看变量,查看堆栈,查看内存

适用于代码编译正确,但输出结果不尽人意的状况

1  将.c文件生成可执行文件过程,加-g将调试信息写入

gcc -g -o hello hello.c  //调试信息写入程序变大

2  gdb hello   //进行调试hello

3 调试界面:

查看文件:list(简写l)        //默输出下10行代码

设置断点:break 8(b 8)        //断点8,程序在运行至第八行停止

运行程序: run  (r)                //运行至断点处

查看变量:print i (p i)           //查看变量i的值

继续运行: c                             //continue

单步运行:n                              //next

退出GDB调试:q                       //quit

遗憾的是,实验课并没有让我完全掌握GDB调试的习惯,不过路还很长,我走的很慢,也愿意一步一步来。

backtrace                //查看堆栈,一般栈顶的函数是出错的函数

disassemble set)array       //查看set_array函数的汇编代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值