什么是 include?
#include
其实是一个预处理命令,意思为将一个文件“放”在这条语句处,被“放”的文件被称为头文件。也就是说,在编译时,编译器会“复制”头文件 iostream
中的内容,“粘贴”到 #include <iostream>
这条语句处。这样,你就可以使用 iostream
中提供的 std::cin
、std::cout
、std::endl
等对象了。
如果你学过 C 语言,你会发现目前我们接触的 C++ 中的头文件一般都不带 .h
后缀,而那些 C 语言中的头文件 xx.h
都变成了 cxx
,如 stdio.h
变成了 cstdio
。因为 C++ 为了和 C 保持兼容,都直接使用了 C 语言中的头文件,为了区分 C++ 的头文件和 C 的头文件,使用了 c
前缀。
一般来说,应当根据你需要编写的 C++ 程序的需要来确定你要 #include
哪些头文件。但如果你 #include
了多余的头文件,只会增加编译时间,几乎不会对运行时间造成影响。目前我们只接触到了 iostream
和 cstdio
两个头文件,如果你只需要 scanf
和 printf
,就可以不用 #include <iostream>
。
可以 #include
自己写的头文件吗?答案是,可以。
你可以自己写一个头文件,如:myheader.h
。然后,将其放到和你的代码相同的目录里,再 #include "myheader.h"
即可。需要注意的是,自定义的头文件需要使用引号而非尖括号。当然,你也可以使用编译命令 -I <header_file_path>
来告诉编译器在哪找头文件,就不需要将头文件放到和代码相同的目录里了。
什么是 main()
?
可以理解为程序运行时就会执行 main()
中的代码。
实际上,main
函数是由系统或外部程序调用的。如,你在命令行中调用了你的程序,也就是调用了你程序中的 main
函数(在此之前先完成了全局 变量 的构造)。
最后的 return 0;
表示程序运行成功。默认情况下,程序结束时返回 0 表示一切正常,否则返回值表示错误代码(在 Windows 下这个错误代码的十六进制可以通过 Windows Error Codes 网站 进行查询)。这个值返回给谁呢?其实就是调用你写的程序的系统或外部程序,它会在你的程序结束时接收到这个返回值。如果不写 return
语句的话,程序正常结束默认返回值也是 0。
在 C 或 C++ 中,程序的返回值不为 0 会导致运行时错误(RE)。