5.2 KiB
C 程序的基本要素
原文:https://overiq.com/c-programming-101/basic-elements-of-a-c-program/
最后更新于 2020 年 9 月 24 日
一个基本的 C 程序有以下形式。
comments
preprocessor directives
int main()
{
statements;
}
这是典型的 C 程序的结构。让我们稍微详细地讨论一下每个部分的含义。
预处理器指令
在编译一个程序之前,它要经过一个叫做预处理器的特殊程序(它内置于编译器中)。以井号(#)符号开头的行称为预处理器指令或只是指令。预处理器指令必须放在文件的开头。这些指令执行不同类型的功能,但是现在,我们将使用它们来包含一个头文件。那么什么是头文件呢?头文件包含我们希望在程序中使用的函数的信息。它总是以.h扩展名结束。例如,stdio.h头文件包含关于输入和输出功能的信息。包含头文件后,您可以使用头文件中定义的任何函数。预处理器指令不以分号(;)结束。要在程序中包含stdio.h头文件,请执行以下操作:
#include<stdio.h>
上一行使预处理器在程序的这一点上包含一份stdio.h头文件。头文件由 C 编译器提供。如果你的程序需要一个以上的头文件,那么把它们放在自己的行上。例如,C 标准库包含一个名为math.h的头文件,其中包含数学函数和常量。要在程序中包含stdio.h和math.h,请执行以下操作:
#include<stdio.h>
#include<math.h>
功能
函数是一个独立的代码块,其他语言称之为过程或子程序。一个函数只是一系列组合在一起并给定名称的语句。一个函数做一些非常具体的事情,例如计算一个数的阶乘,求两个数的和,等等。一个 C 程序可能包含许多功能,但main()是强制性的。main()功能很特别,因为当操作系统开始执行程序时,main()会被自动调用。所以你有必要定义这个函数。
声明
您可以将该语句视为程序运行时要执行的计算机命令。一般来说,所有语句都以分号(;)结束,尽管也有一些例外。
评论
注释用于在编程时写一些有价值的笔记。它们也增加了程序的可读性。注释可以解释程序的目的,也有助于理解程序如何工作。注释不是编程语句,它们在编译程序时被编译器忽略。注释几乎可以出现在程序的任何地方。写评论有两种方法:
- 单行注释。
- 多行注释。
单行注释
单行注释从//开始,一直到行尾。
// including stdio.h header file
#include<stdio.h>
#include<math.h> // math.h contains all mathematical related function
多行注释
多行注释以/*开始,以*/结束。在/*和*/之间的一切都将被编译器忽略。
/*
Author: overiq.com
Purpose: Learning C
*/
#include<stdio.h>
现在你知道了 C 程序的基本结构。让我们创建一个简单的 C 程序。在 Code::Blocks 中创建一个名为"Hello"的新项目,并用以下代码替换默认代码:
/*
Project: Hello
Author: overiq.com
*/
#include<stdio.h> // include stdio.h library
int main(void)
{
printf("Hello"); // print "Hello" to console
return 0; // return 0 to operating system
}
工作原理: C 语言没有任何输入输出的设施。因此,输入和输出操作由编译器提供的一组库来执行,它们在形式上不是 C 语言的一部分,但它们被认为是 C 语言中输入和输出操作的标准。执行输入和输出操作的一组库被称为标准输入/输出库。为了在我们的程序中包含输入和输出工具,我们需要包含stdio.h头文件。要包含头文件,必须在文件开头使用#include预处理器指令,如下所示:
#include<stdio.h>
int main(void)行启动main()功能,int表示main()功能返回整数值。那么我们为什么要返回值呢?当程序运行时,操作系统需要某种方式来决定程序是否成功运行。0的返回值表示程序运行成功,反之,非零值表示有问题。接下来,注意关键字 main 后面括号中的关键字void。void表示main()函数不接受任何参数。在单词main(void)之后,第 9 行的左括号({)开始函数的主体。第 12 行中相应的右括号(})结束了函数的主体。您必须始终关闭函数体,否则编译器将报告语法错误。在大括号({})之间,我们有函数的主体。main()功能仅由两个语句组成。第 10 行的语句使用printf()库函数将"Hello"打印到控制台(我们在第课【输入和输出】中详细讨论了printf()函数)。声明。
return 0;
做两件事。首先导致main()函数终止,其次提供0返回值。请注意,main()函数仅由两个语句组成(在第 10 行和第 11 行),它们都以分号(;)结束。这是一个基本的 C 程序是如何工作的。本章已经介绍了 C 程序的基本组成部分。在下一章中,我们将学习 C 语言中的数据类型