大家的C语言-305-第一个C语言程序-语句块

经过长时间的铺垫,我们已经了解了CPU、程序、可执行文件。安装了操作系统,学会了使用编辑器,现在我们可以来编写代码了。本节将介绍第一个C语言源代码。并讲解C语言源代码的基本结构。

编写源代码

现在打开终端,并将当前路径切换成我们之间建立的OurC目录1
在这里插入图片描述
使用vim打开一名名为main.c的文件。C语言源代码的文件名后缀为.c。这是编译器规定的,编译器会把.c文件翻译成可执行文件,而不会翻译其他文件。
在这里插入图片描述
然后进入编辑模式,输入以下代码。本代码仍然是实现计算2+1=3的问题。

void add()
{
	int a = 2+1;
}

int main(int argc, char* argv)
{
	add();
	return 0;
}

大家的C语言-305-第一个C语言程序-语句块_第1张图片
以上是一个完整的C语言源代码。这个源代码可能跟你在其他的教程里看到的不太一样。这是我故意设计的,以免让一些目前还不重要的东西影响了你对C语言的理解。

源代码结构讲解

大家的C语言-305-第一个C语言程序-语句块_第2张图片
首先我们要注意的是源代码中的大括号。大括号里包裹的部分叫做语句块,而语句块内部的类似add();return0;的东西叫做语句。每条语句以分号(;)结束。多条语句可以写在源文件中的一行,如下。

int main(int argc, char** argv)
{
	add(); return 0;
}

但为了使源代码易于阅读基本上每条语句会单独成行。
C语言的源代码是由语句组成的,而语句被划分成语句块。可以给语句块起个名字,例中的mainadd就是语句块的名字。翻译器会把源代码中的语句块翻译成一段连续的程序块,并拼装到可执行文件中。不同的程序块,可能是连续的也可能是不连续的。如下图2
大家的C语言-305-第一个C语言程序-语句块_第3张图片
当操作系统将可执行文件加载到内存后,语句块内的指令仍然是连续的。
大家的C语言-305-第一个C语言程序-语句块_第4张图片
main语句块是一个特殊的语句块。由main语句块翻译出来的程序块是整个可执行文件的第一个程序块。操作系统将可执行文件加载到内存之后,会将main语句块的第一个指令的内存地址告诉CPU。由此CPU就可以一条一条地执行main语句块之内的指令了。
由于main语句块被规定为第一个语句块,因此整个源代码中只能有一个语句块叫main。
现在你已经了解了什么是语句块,和main语句块的特殊性。下一节将介绍语句块名字后面的括号是什么意思。以及add代码块中的代码是如何被CPU执行的。


  1. 本节仍然会将基本的操作的截图发出来,之后不会了。 ↩︎

  2. 程序块本身是没有名字的。但为了方便大家理解图中以语句块的名字来区分程序块。 ↩︎

你可能感兴趣的:(大家的C语言)