目录
1.1 新建一个hello.c源文件
1.2 多个main函数的写法
1.3 源文件到可执行文件的过程
1.3.1 对hello.c的处理过程
1.3.2 平常使用的方式
1.4 编辑器vim
1.4.1 vim配置脚本
1.4.2常用的快捷方式
1.1 新建一个hello.c源文件
vim hello.c
#include
#include
int main(int argc,char *argv[])
{
printf("Hello world!n"); // n 换行,刷新缓冲区
exit(0);
}
通过man 3 exit ,查看exit所在的头文件为 #include
printf 在 #include 中
man 手册第3章为标准库函数
通过man 3 exit ,查看exit所在的头文件为 #include
printf 在 #include
man 手册第3章为标准库函数
1.2 多个main函数的写法
void main(void);
void main(int argc,char **argv);
int main(int argc,char **argv);
int main(void);
int main(int argc,char *argv[]);
最开始C语言中没有void类型;
要看在哪个编译器环境下,怎样运行来决定;
main函数作为函数的入口;
先定义,再使用。
建议多用空行和空格,shell中赋值时不能随意使用空格,C语言建议多用;
建议使用锯齿状的逻辑来摆开程序(比如括号的匹配)。
最开始C语言中没有void类型;
要看在哪个编译器环境下,怎样运行来决定;
main函数作为函数的入口;
先定义,再使用。
建议多用空行和空格,shell中赋值时不能随意使用空格,C语言建议多用;
建议使用锯齿状的逻辑来摆开程序(比如括号的匹配)。
1.3 源文件到可执行文件的过程
C源文件 -- 预处理 -- 编译 -- 汇编 -- 链接 -- 可执行文件
预处理:处理以#开头的部分,如#include
; 编译:将预处理的文件,编译成汇编文件;
汇编:将汇编文件,汇编成目标文件;
链接:将目标文件,链接成可执行文件。
1.3.1 对hello.c的处理过程
预处理: gcc -E hello.c > hello.i 。生成hello.i,是预处理的结果,.i为gcc认为的预处理结果文件。
编译:gcc -S hello.i 。默认会产生一个hello.s的文件,这是一个汇编文件。
汇编:gcc -c hello.s 。默认会生成一个hello.o文件。这是一个目标文件。
链接:gcc hello.o -o hello 。链接目标文件为可执行程序,指定可执行程序名字为hello。
运行程序: ./hello 。 ./ 表示当前路径下的hello程序。
预处理: gcc -E hello.c > hello.i 。生成hello.i,是预处理的结果,.i为gcc认为的预处理结果文件。
编译:gcc -S hello.i 。默认会产生一个hello.s的文件,这是一个汇编文件。
汇编:gcc -c hello.s 。默认会生成一个hello.o文件。这是一个目标文件。
链接:gcc hello.o -o hello 。链接目标文件为可执行程序,指定可执行程序名字为hello。
运行程序: ./hello 。 ./ 表示当前路径下的hello程序。
1.3.2 平常使用的方式
gcc hello.c 将以上所有过程走一遍,生成a.out的可执行文件。
gcc hello.c -o myhello 将以上所有过程走一遍,生成名为myhello的可执行文件。
使用make工具,(需要写Makefile)。
gcc hello.c 将以上所有过程走一遍,生成a.out的可执行文件。
gcc hello.c -o myhello 将以上所有过程走一遍,生成名为myhello的可执行文件。
使用make工具,(需要写Makefile)。
1.4 编辑器vim
1.4.1 vim配置脚本
vim的配置文件 /etc/vim/vimrc 。
不建议直接修改vimrxc。将vim配置文件复制到家目录下(cp /etc/vim/vimrc ~/.vimrc ),然后在家目录下的 .vimrc 中修改。
因为etc下的vimrc对所有用户有效,家目录下的vimrc对本用户有效。
设置Tab键缩进4个空格:在vimrc底部增加 settabstop=4
1.4.2常用的快捷方式
Ctrl+p,自动补齐,上下选择,然后回车确定。
命令模式下,光标放在函数上,Shift+K,直接调到man手册中。qq再回到vim中。



