一:C程序运行机制流程
以上一章节中的hello.c 文件为例,在该文件所在的终端进行操作。
(1)编写
编写C语言源程序代码,并以文件的形式存储到磁盘中,源代码文件以“.c”作为扩展名,如上一章节中的hello.c 文件。
(2)预处理
在编译之前,预处理器会处理源代码文件,主要进行一些文本上的处理,包括去掉多余的空格和注释,处理预处理指令(后面会学到),生成经过处理的源代码文件,通常带有.i扩展名。
gcc -E hello.c -o hello.i
(3)编译
编译器接受预处理后的源代码文件,并将其翻译成汇编代码,生成汇编文件,通常带有.s或.asm扩展名。
gcc -S hello.i -o hello.s
(4)汇编
汇编器将汇编代码翻译成机器码并生成一个或多个目标文件,目标文件是二进制文件,通常带有.o(在Unix-like系统上)或.obj(在Windows上)。
gcc -c hello.s -o hello.o
(5)链接
链接器将多个目标文件(如果有的话)合并在一起,包括C标准库文件和其他库文件,生成最终的可执行的二进制程序(.exe 文件)。
库文件是由系统提供,里面包括内置的标准函数和数据结构集合等,我们代码中使用的 <stdio.h> 就是标准库提供的,里面定义 printf 这个函数。
gcc hello.o -o hello.exe
(6)运行
执行该.exe文件得到程序的运行结果。
./hello.exe
以上内容可以作为了解,并不是学习的关键。
二:注释
编程语言中,注释是一种特殊的文本,它不会被编译器执行,而仅用于代码的解释和文档说明。对代码进行解释说明,帮助其他开发者理解代码的意图、功能和逻辑。注释掉暂时不想执行的代码,在代码调试中经常用到。
(1)单行注释
// 注释内容
(2)多行注释
/* 注释内容 */
/*
注释内容
*/
三:printf()语句
printf()用作输出,要输出的内容需要用双引号包裹,如果需要换行可以使用 “\n”。
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
printf("我正在学习C语言\n");
printf("\n锄禾日当午,\n汗滴禾下土,\n谁知盘中餐,\n粒粒皆辛苦");
return 0;
}
四:代码风格
(1)行尾风格
int main() {
printf("Hello World");
return 0;
}
(2)次行风格
int main()
{
printf("Hello World");
return 0;
}
本章的内容就到这里。
关注我一起成为嵌入式大佬。