Linux C语言编程基本原理与实践,C语言指针与内存

vim编辑器的使用

常用命令

  • esc 进入命令模式
  • i 光标前面插入字符 shift+i 本行首
  • a 光标后面插入字符 shift+a 本行尾
  • o 下一行插入 shift+o 上一行插入
  • x 删除光标处的字符
  • dd 删除光标那一行字符
  • :w 保存
  • :q 退出
  • :e 不保存,恢复到上个版本
  • :sp max.c 打开多个文件
  • :set nu 打开行号
  • 9 dd 剪切当前位置开始的9行 9yy复制
  • p 粘贴
  • :wqa 保存所有
  • ctrl+w+方向键 移动光标位置

在用vim打开一个文件时,会产生一个cmd.swap文件,用于保存数据:

  1. 当编辑中的文件非正常关闭时,可用此.swp文件来恢复(非正常关闭时,不会被删除,所以提示存在.swap文件);
  2. 当编辑文件正常关闭时,此.swp文件会被删除;恢复非正常关闭的文件: vim -r 文件名:恢复后把.swp文件删除,再次打开时就不会再次提醒了;直接删除.swp文件,然后再次打开时也不会提示消息了;


c语言程序的编译

gcc hello.c max.c -o main.out 编译并指定输出文件名

#include"max.c" 相当于直接插入 不用一起编译了

gcc -c max.c -o max.o 生成.o文件

max.h里面只用声明函数

gcc max.o hello.c时,编译器比较智能,能找到max.o中有个max函数 但是会警告
如果在max.h里面有声明,并且main函数里面#include"max.h"后,编译不会警告



Makefile编写

#注释

hello.out:max.o hello.c #依赖哪些文件
gcc max.o hello.c -o hello.out #如何编译
max.o:max.c
gcc -c max.c

gcc前面加一个tab 不能用空格 会报错



main函数中的return

gcc main.c -o main.out && ./main.out 如果第一条指令成功执行 (返回码为0)则执行第二条
echo $? 查看上次执行程序的返回码



main函数中的参数

int main(int argc, char*argv[])
argc 参数的个数 默认为1 就是./xxx 这串参数
argv 存放的参数



stdin stdout stdrr

输入0 输出1 错误2

./a.out 1>> a.txt输出重定向到文件

ls /etc >> etc.txt
ls /etc > etc.txt 单箭头覆盖 双箭头添加到结尾

./a.out 1>t.txt 2>f.txt 0<input.txt



gdb调试

gcc -g main.c -o main.out 这样才能用gdb调试

gdb ./main.out 进入调剂模式

l 显示代码

break 12 在12打断点

start 开始调试

p a 显示a的值

n 执行下一行

s(step) 进入函数

bt 查看函数堆栈

f 1 切换堆栈

q 退出调试模式

x/3d 地址 连续显示三个整数



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值