C++学习系列二——简单程序编写和windows下Cygwin编译程序
放弃C++ Primer Plus转战C++ Primer
第二篇C++学习笔记,因为某些原因放弃了C++ Primer Plus(诸如C++ Primer Plus可能对C++11标准介绍的不多,然而在工业界,c++11还是用的比较多,而且有的C++特性 C++ Primer Plus介绍的有些啰嗦,个人感觉),然后对于C++ Primer网上的评价是学习C++的经典书,但是对于纯小白来说,这本书介绍之详尽很容易让人无法判断学习的重点。所以我参考靠知乎上一些大佬学习C++ Primer的建议,链接: link.知友dawnmist的高赞回答比较符合我,就是跳着学C++ Primer。因此本人也听人劝,先学起来看看。
第一章 从C++程序直接开始
直接从构建一个书店销售书籍的程序开始。
一个简单的main()函数
一个C++程序包含一个或若干个函数,其中一个函数必须命名为main,它是操作系统与程序进行交互的接口。
函数的结构
函数结构:返回类型(return type),函数名,参数列表(argument list)和函数体。
一个main()函数的结构也由这四部分组成,一个main()函数的结构如下:
int main()
{
return 0;
}
Note:
- 函数:具名计算单元;
- 函数的名字:函数被人所知的名字,函数被调用时通过名字调用;
- 返回类型与函数体中的return语句的返回值的字面值类型要对应!
- 返回类型与return返回值的作用:之前说了main()函数是作为操作系统与程序交互的接口,实际上main()函数会被操作系统 调用 ,这个返回类型与返回值就是告诉操作系统main()函数的一些运行状态。默认return 0,表示程序运行正常,而返回非0,就表示程序运行有错误,系统会针对错误进行相应的操作。
- 参数列表:函数的一部分,定义了函数被调用是需要使用的数据和类型;
- 函数体:语句块。语句块由左花括号开始,右花括号结束,括号内部为0个或多个语句序列,定义了程序执行的动作,如上面的 main() 函数中体中的 " return 0; " 语句。
- return语句结尾是英式输入法的分号!
编译 运行程序
最开始应该注重C++的语言特性,所以我们先不使用能很方便构建大型项目的IDE,而是使用一些具有编译功能的简单第三方软件,这里作者的电脑为Windows10系统,使用网上推荐的Cygwin编译软件,它能够在Windows环境下提供Linux的编译环境,通过g++编译器能对源代码文件进行编译。
-
Cygwin的安装:
可以参考该文:https://www.douban.com/note/723078223/ -
编译上面的main()程序:
- 注意使用Cygwin在Linux环境下的C++源代码文件的后缀一般为”.cc“。因此我们使用Notepad++创建名为 main_primary.cc 的C++源代码文件,并将上面的main()函数代码复制到该C++源代码文件中。
- 在Cygwin下进入main_primary.cc保存的路径,在Windows系统下,作者将其放在G:\C++ Primer\C++ Primer foundation下。Cygwin默认会挂载G盘(通过dh -f指令可以查看到我的G盘挂载在/cygwin/g文件夹下),所以我们输入cd /cygwin/g 并回车 (PS:该指令是Linux系统下进入某个文件夹的指令,windows下的某个盘现在可以看作是Linux下的一个文件夹)
输入ls 并回车,查看/cygwin/g文件夹下所有文件及文件夹
输入cd C++按Tab进行名字自动补齐:
同样输入cd C++ 按Tab补齐C++ Primer foundtion,回车并输入ls就可以查看到main_primary.cc文件