- 高效微控制器C语言编程
- (美)马克·卢瓦
- 1205字
- 2025-06-05 13:36:25
1.2.2 创建C语言“Hello,World”
编辑器和编译器就位后,我们就可以尝试许多开发人员用新语言编写的第一个广受好评的程序“Hello,World”程序。这个程序的目的是证明你能用新语言编写有效的代码,并能输出信息。

图1-11:在Linux上的VS Code中试用GCC
作为一种语言,C语言可以很简洁。我们将在第一个程序中详细介绍分号、大括号、反斜线和其他奇怪的符号,但现在请逐字复制这一小段代码。在VS Code中,你可以在左侧的资源管理器中单击右键,或使用“文件”→“新文件”菜单项,或按Ctrl+N键,创建一个新文件。

保存文件并将其命名为hello.c。我们还将在VS Code中打开终端(“视图”→“终端”菜单项或Ctrl+`)。你应该会看到与图1-12类似的内容。
如果你已经掌握了其他语言,那么你可能已经猜到发生了什么。无论如何,让我们花一点时间回顾一下每一行。不过,如果其中有些解释让人感到费解,也不用担心。学习编程需要大量的练习和耐心。后面的章节将帮助你强化这两种技能。

这一行加载“标准输入/输出”库的头文件。库(粗略地说)是运行gcc时可以附加到你自己的代码中的外部代码。头文件是对这些外部实体的简洁描述。这是非常普通的一行,代表一个非常普通的库的一个非常流行的部分。除其他事项外,该头文件还包括printf()函数的定义,我们用它来获取实际输出。几乎你编写的所有C程序都会用到它。这一行始终位于文件的顶部,不过正如我们将在第6章中看到的,你通常会使用多个库,每个库都有自己的头文件#include行。

图1-12:“Hello,World”和我们的终端选项卡

复杂的程序可能有数十个(甚至数百或数千个)独立的C语言文件。将大问题分离成更小的部分是成为优秀程序员的基本要素。这些较小的“部分”更容易调试和维护。它们还能帮助你找到重复任务的时机,从而重复使用你已经编写的代码。但无论你的程序是庞大、复杂,还是微小、简单,你都需要一个起点。这一行就是起点。main()函数始终是必需的,尽管偶尔看起来会有些不同。我们将在第2章讨论像该行开头的int这样的类型,并在第5章更仔细地研究函数。但请注意行尾的{。这个字符打开了一个代码块。

这条语句是我们程序的核心,它代表main()函数块的主体。代码块包含一行或多行代码,这些代码(在C语言中)以大括号为界,我们通常将代码块的内容称为其主体。这个特殊的正文只做了一件事:使用printf()函数(同样定义在stdio.h)生成一个友好的全局问候语。我们将在2.3节更详细地介绍printf(),以及类似"Hello,world\n"这样的代码段。
我还想快速强调行尾的分号。这个标点符号会告诉C编译器何时完成一条语句。在我们的代码块中只有一条语句的情况下,这个标点符号的意义并不大,但当我们有更多的语句或语句杂乱到需要跨几行时,它就会有所帮助。
最后,但并非最不重要的是,这里是“收尾”大括号,与上面两行的“开头”大括号相匹配:

每个程序块都有这些开头/收尾大括号。编程中最常见的错误之一就是开头或收尾大括号太多。令人欣慰的是,大多数现代编辑器都有花哨的语法高亮功能,可以帮你匹配任何一对大括号(从而识别出任何没有搭档的大括号)。