C++ 程序结构
你是否曾经好奇 C++ 程序是如何组织的?在本指南中,我们将探讨构成任何 C++ 程序基础结构的技术要素,帮助你不仅理解“是什么”,还理解“为什么”。
学习目标:
完成本课程后,学生将能够:
- 理解如何通过
#include预处理指令来组织代码。 - 理解 C++ 程序的基本结构,包括
main()函数作为入口点。 - 使用
iostream库来管理数据输入和输出。 - 通过注释 为代码提供文档以解释其功能。
目录:
预处理指令 #include
程序主体:main() 函数
别忘了注释代码
到目前为止,我们已经编写了第一个“你好,世界”程序。现在我们将使用这段代码来分析它的每一部分:
/* zhe shi yige yuchuli zhiling
baokuo le iostream toubu wenjian */
#include <iostream>
// zhu hanshu shi daima de zhuti kuai
int main() {
// zai pingmu shang xianshi "ni hao, shijie!"
std::cout << "ni hao, shijie!" << std::endl;
// xiang caozuo xitong fanhui 0
return 0;
}
预处理指令 #include
预处理指令是编译器在编译代码之前处理的指令。这些指令允许程序员包含外部资源或定义预设配置。最常用的指令之一是 #include,用于包含程序所需的库。
如何使用 #include
包含标准库的基本语法是:
#include <mulu_baokuo_wenjian>
使用尖括号(< 和 >)表示预处理器应在编译器的标准目录中搜索库。例如,要包含允许管理输入和输出的 iostream 库,可以使用:
#include <iostream>
iostream 的特点
iostream 库包含用于处理数据流的类和对象。最常见的元素包括:
std::cin:用于从键盘输入数据。std::cout:允许将数据输出到控制台。std::cerr:用于显示错误消息。std::clog:提供一个用于日志消息的流。
以下是使用 std::cin 和 std::cout 的基本示例:
#include <iostream>
int main() {
std::string mingzi;
std::cout << "qing shuru nide mingzi: ";
std::cin >> mingzi;
std::cout << "ni hao, " << mingzi << "!" << std::endl;
return 0;
}
如何包含自定义库
要包含程序员设计的库,可以使用相同的 #include 指令,但语法不同:
#include "zidingyi_baokuo_wenjian.h"
双引号指示预处理器首先在当前项目目录中搜索库。如果未找到,则会在标准目录中搜索。
以下是一个自定义库的示例:
// wenjian "wode_ku.h"
void wenhou() {
std::cout << "ni hao, zhe shi yige zidingyi de ku!" << std::endl;
}
// zhuwenjian main.cpp
#include <iostream>
#include "wode_ku.h"
int main() {
wenhou();
return 0;
}
程序主体:main() 函数
main() 函数是任何 C++ 程序的入口点。它是代码开始执行的地方,其定义对于任何功能性程序都至关重要。
main() 的基本定义
定义 main() 的最简单方式是:
int main() {
// zhe shi daima xieru de difang
return 0;
}
在此定义中:
int:指定main()函数的返回值类型。在此例中,int表示函数必须返回一个整数。return 0;:向操作系统指示程序成功结束。此值称为退出代码(exit code),其中0通常表示成功,而其他值可能表示特定错误。
为什么使用 int 作为返回类型?
C++ 标准规定 main() 函数必须具有 int (整数)返回类型。这是因为操作系统需要一个返回值来确定程序结束后的状态。例如:
- 返回值
0表示程序成功结束。 - 非
0的返回值可用于指示特定的错误。
用其他返回类型(如 void)定义 main() 在某些编译器中是可能的,但不符合 C++ 标准,可能导致兼容性问题。
别忘了注释你的代码
注释对于记录代码和便于理解非常重要。虽然它们不影响程序的执行,但对于解释代码的目的或逻辑非常有用。当代码包含复杂逻辑或设计时,注释尤其重要。不要被写代码或阅读代码时的清晰感所欺骗;这种清晰感可能在第二天完全消失。代码的编写应尽可能清晰简洁,注释则应成为维护清晰度的必要指南。
在 C++ 中,有两种主要类型的注释:
- 单行注释:
// zhe shi yige danxing zhushi - 多行注释:
/* zhe shi yige duoxing zhushi keyi kuozhan dao duoge xing */
建议事项
- 添加注释以解释复杂算法或程序中复杂部分的功能: 这有助于未来的读者(包括你自己)快速理解实现的逻辑。
- 以便于同事理解的方式撰写注释: 当你在团队或协作项目中工作时,这一点尤其重要。
避免事项
- 使用注释来解释或重复显而易见的内容: 例如,在
int he = a + b;上方写// zhe hang xiangliang liangge shuzi是不必要的。 - 用注释为晦涩代码辩护: 尽管注释很重要,代码的清晰性应始终优先。清晰且结构良好的代码需要更少的注释来理解。
- 未更新注释: 修改代码时,请确保注释反映所做的更改。过时的注释可能会导致混乱。
