vim 编辑器
进入编辑模式:
i(在光标当前处插入)
a(在光标之后插入)
o(在光标当前行的下一行插入)
命令行模式: ESC
末行模式: :命令
命令模式:
dd 删除光标所在行
ndd 删除当前行和以下的n行
dw
yy 复制当前行
yw 复制单词
nyw
nyy
p 粘贴
保存 :w
查找: / 或 ? 按n下一个
撤销 u
恢复 ctrl + r
替换 :%s/hello/apple %代表整个文件
:4,9s/hello/apple 4—9行
跳到特定行: :行号
定位到末尾: G
定位到行首 gg
向上翻页 ctrl + u
向下翻页 ctrl + d
显示行号 set nu
去掉行号 set nonu
gcc编译器
预处理 gcc –E hello.c –o hello.i
编译 gcc –S hello.c –o hello.S
汇编 gcc –c hello.c –o hello.o
连接 gcc hello.c –o hello
(符号重定位,全局符号:全局变量,函数)
C与UNIX
ANSI C
ISO C89 和ISO C99
POSIX标准(可移植性操作系统接口)
GNU C
LINUX内核开发使用的C语言覆盖了ISO C99标准和GNU C扩展特性,GNU C扩展特性包括内联函数,内联汇编,分支声明。
标准C库(对系统调用的进一步封装)
LINUX编程规范
不同逻辑块要空行
缩进
符号2边要适当空格
基本数据类型
常量
整型常量和浮点型常量
整型:123 0123 0x123fff
浮点型:
3.14
3.14e3
3.14E-2
字符型常量和字符串常量
字符:’a’ ‘\0’ ‘\n’ ‘\0’ ‘\xff’
字符串:”a” “helloworld”
表示不可见字符的三种方法
1. 使用ASCII码 char beep = 7
2. 使用转义序列char beep = ‘\a’
3. 使用转义字符char beep = ‘\x7’
man ascii
stdbool.h是在linux环境下才有的
void型
关键字void用来修饰指针变量,函数返回类型和函数参数
typedef可用于提高可移植性
解析:平台1的int类型是4个字节
平台2的long类型是4个字节
那么平台1 typedef int int_32
平台2 typedef long int_32
这样用int_32来申请的内存空间大小就都是4个字节的