为了分析C++程序的组成部分,我们以上一节在屏幕上打印HelloWorld的程序为示例,进行分析。
#include <iostream>
int main()
{
std::cout << "Hello,World!" << std::endl;
return 0;
}
很明显,我们可以把以上程序划分为两个部分:以#为开头的预处理器编译指令以及以int main()打头的程序主体。
#include
#include为预处理器编译指令。所谓预处理器,顾名思义,即是一个在编译前运行的工具。预处理器编译指令是向预处理器发出的命令,总是以符号#开头。
#include <filename> 让预处理器获取指定的文件(这里是iostream)的内容,并将它们放在编译指令所处的位置。filename称为头文件,而头文件分为两种,一种是标准头文件(用<>括起来的),一种是自定义头文件(用""括起来的)。
程序主体
main()函数就是程序的主体,C++程序的执行总是从这里开始。另外总是以int为返回值,这是一种标准化的约定。
返回值
在C++中函数一般会返回一个值,除非明确声明不返回值。在很多情况下,一个应用程序被另一个应用程序启动,而父应用程序想知道子应用程序是否成功地完成了其任务。这个时候可以利用返回值向父应用程序传递成功或错误状态。一般成功返回0,失败返回-1。
名称空间
以HelloWorld C++程序为示例,在示例程序中,cout函数的书写方式为std::cout而不是cout,原因在于cout函数位于标准名称空间std中。所谓的名称空间,其实是为了区分开相同名称的函数。让编译器调用名称空间std中独一无二的cout。所以std我们称之为名称空间限定符。
如果觉得在代码里面添加std比较繁琐,那可以声明using namespace std,来避免多次书写std。
#include <iostream>
int main()
{ using namespace std;
cout << "Hello,World!" << endl;
return 0;
}
以上写法我们把std命名空间中的所有内容都包含了进来,更好的写法是包含我们使用的即可。
#include <iostream>
int main()
{ using std::cout;
using std::endl;
cout << "Hello,World!" << endl;
return 0;
}
注释
C++中支持两种风格的注释
- 单行注释
#include <iostream>
int main()
{ using std::cout;
using std::endl;
//write to the screen using std::cout
cout << "Hello,World!" << endl;
return 0;
}
- 多行注释
#include <iostream>
int main()
{ using std::cout;
using std::endl;
/*write to the screen using std::cout*/
cout << "Hello,World!" << endl;
return 0;
}
在程序的复杂算法和复杂部分的工作原理进行解释时,请务必添加注释。
函数
每个函数都是一个功能单元,一个应用程序可以有很多个函数。常见的函数如main()函数,它被编译器视为C++应用程序的起点,而且必须返回一个整数。但实际开发中,我们往往需要编写我们自己的函数。这里我们重点说下函数的声明和定义。函数的声明和定义往往有以下两种情况。
- 先声明后定义
#include <iostream>
int DemoOutput();
int main()
{
return DemoOutput();
}
int DemoOutput()
{
return 0;
}
先声明了DemoOutput()函数,然后在main函数之外定义了该函数,在main函数里面使用了该函数。这就是先声明再定义。 2. 边声明边定义
#include <iostream>
int DemoOutput()
{
return 0;
}
int main()
{
return DemoOutput();
}
把函数实现放在调用函数的前面,编译器会视为函数的声明和定义。
输入和输出
这里我们使用控制台读写信息,来阐述输入和输出操作。输出函数为std::cout,输入函数为std::cin.
- cout
std::cout << "Hello,World!" << std::endl;
输出操作借助插入运算符 "<<" ,后面跟着要输出的内容。
- cin
cin >> InputName;
输入操作借助提取运算符">>",后面跟着存放输入数据的变量名称。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int InputNum;
cout << "Enter an interger:";
cin >> InputNum;
string InputName;
cout << "Enter your name:";
cin >> InputName;
cout << InputName << " entered " << InputNum << endl;
return 0;
}
[09:05:52 ~/fkq/C++BLOG]$ ./hello
Enter an interger:18
Enter your name:fukaiqiang
fukaiqiang entered 18
总结
本文介绍了简单的C++程序的基本组成部分,以及main()函数、名称空间、控制台的输入输出操作。