C++ Primer 5ed 学习日志#1:1.1 Writing a Simple C++ Program
Chapter 1 Section 1 Writing a Simple C++ Program
本节介绍简单的C++函数模型以及在Linux下编译程序的方法
1.1 C++函数
一个C++程序包含至少一个函数,其中main函数是必不可少的函数,也就是说,每一个C++程序至少有一个main函数,操作系统执行程序就是从调用main函数开始的,请看下面的示例。
int main(){
return 0;
}
上面是一个最简单的main函数,执行上面的程序系统表面上什么都不会做,这只是一个简单的例子,从这个例子中可以看出,一个函数包含以下几个要素:
- 返回值类型
- 函数名
- 被小括号包围的参数列表
- 花括号包围的函数体
在上面的示例代码中,main函数的返回值类型为int(整形),函数名为main,参数列表为空,函数体中只有一条语句return 0;
其中,返回值类型int为C++中的内置类型,也就是说该类型是语言中就定义了的,int表示一个整型,在后面还会遇到非内置类型,比如字符串、数组、向量、结构体、对象等等。函数体中return的作用是结束函数执行并在函数执行结束后返回一个值,main函数的返回值为1时代表程序非正常退出,为0时代表程序正常结束,返回值的数据类型应与函数名前面的数据类型标识符一致或至少要兼容,上述代码中,return 0使main函数结束执行并返回一个整数0。
还有一点需要注意的是C++中的每一条语句都由分号结束,初学程序设计时容易忘记在每条语句结尾打上;,是程序不能通过编译或逻辑出错,有时编译器产生诡异的编译错误信息很有可能是因为程序的某些地方忘记了分号,这时,你要看看程序中是否有漏掉的分号,每发现一处遗漏的分号添加后就再编译一次,很有可能就能够通过编译。
类型
数据类型是编程语言中非常重要的概念,类型不仅定义了数据的内容并且决定了数据能够执行的运算和操作。
程序中操作的数据被存储在一个称为变量的内存空间中,每一个变量都有一个类型。
1.1.1 编译和执行程序
C++是一种接近人类自然语言的高级程序设计语言,计算机是无法理解这种语言的,之所以用计算机看不懂的高级语言编写计算机程序是因为使用计算机语言也就是二进制机器语言编写程序过于复杂,不符合人类的思维,用高级语言编写程序简化了程序设计的复杂程度,所以,要让计算机执行用高级语言编写出来的程序,必须把它转换成计算机能够理解的机器语言,这个转换过程就称作为编译compile。
我们要编译程序,就要有编译软件,在这里我们使用gcc-4.8.1,这个编译器是第一个完整支持C++11标准的编译器,在介绍编译操作之前,先来了解一下源文件(就是编译前用高级语言写出来的文件)的命名惯例。
不同的编译器使用不同的源文件后缀名惯例来标识,常见的有.cc、.cxx、.cpp、.cp和.C。
下面介绍具体的编译操作。
我们在命令行模式中进行编译。打开一个terminal,如果操作系统安装了编译器,就可以使用命令进行编译,在这里我们的操作系统是linux,假设我们的源文件名称为prog1.cc,我们可以使用$CC prog1.cc来进行编译,这条命令执行后会在源文件相同的目录下产生一个名为a.out的可执行文件。要运行这个可执行文件,就在当前的工作目录下执行$./a.out,在每次执行完程序后,我们可以通过使用$echo $?命令来查看程序的执行情况。当我们使用GNU的编译器时,通过执行$g++ -o prog1 prog1.cc命令来编译,其中-o prog1指定编译后产生名为prog1的可执行文件,如果省略,默认产生的是名为a.out的可执行文件。注意,如果程序用到了C++11标准,有可能还需要加上-std=c++11参数来保证正确编译。
习题
1.1

source code

compile

run
1.2


浙公网安备 33010602011771号