1.vim配置问题
我们刚开始的vim,没有自动缩进,自动补全等,这让我们写C语言代码很麻烦,vim配套的有一个vimrc文件,这个文件可以配置我们的vim使他具备了这些功能
我们可以在gitee上面配置好vim环境,这样我们写代码就会很方便

我们之前使用sudo的时候,我们需要在在配置文件里面添加,这个用户,当我们学习了vim之后这个可以自己做了
2.gcc g++
2.1gccVSg++
gcc:C语言编译器只能用来编C语言
g++:c++,c均可以编写
2.2程序翻译的过程
1.预处理
2.编译
3.汇编
4.链接
2.2.1预处理
预处理阶段分为四个
a头文件展开
b1去注释
c宏替换
d条件编译
我们要是直接运行一个写好的代码,linux默认是跳过程序翻译过程的那四个阶段,所以需要单独的命令
gcc -E code.c -o code,i
后面的那个i是俗称的字符后缀
-E的意思是:从现在开始程序翻译,做完对源文件的预处理,就停下来

这是咱们写好的代码
要是有语法错误,就会这样告诉我们


这是正确运行的结果,最后的code.i表示的是,把这些内容输出到这个文件里面

接下来我们打开它

接下来我们分析那四条
我们可以很清楚的看到头文件被打开了
注释也没有了
宏也被替换了


至于条件编译:,就相当于把代码做出了一个裁剪,
2.2.2编译
命令是
gcc -s code.c -o code.s
后缀是,s
这一步是将代码进行编译,形成汇编语言

此时我们已经看不懂了,但是计算机可以看懂
2.2.3.-c
转成二进制模式
可重定向为目标二进制文件、
gcc -c code.c -o code.o
这个后缀是.o

2.2.4.最后一步就是生成可执行文件
gcc code.c -o code.exe
我们一直说的-o是输出到指定文件里面


这就是运行后的结果
3.为什么要把C语言翻译为汇编语言
这涉及到了悠久的历史,此处不再过多赘述
4.该如何理解库
库分为动态库和静态库
动态库链接:使用过链接动态库地址来进行的
动态库;一旦动态库缺失,相关的所有程序,都无法运行
静态库链接:把库中我们需要的直接拷贝到你的代码当中
静态库:一旦成功链接,就不需要静态库
动态 静态
.so .a
动态链接 静态链接
节省内存 不用跳转,不依赖库
慢,编译完成后依旧需要库 体积较大
我们学习的gcc默认采用动态的连接方式
注意:编译程序动态更好

如图,这个文件会非常的大