05 - const关键字
const关键字
关键字const
表示使某些内容保持不变,编译器通过将任何试图将其更改的行为标记为错误。此外,启动优化后,编译器可以利用这一点生成更好的代码。
IO简单来说就是数据在输入设备,内存,硬盘,输出设备之间移动的过程。
对于C语言,它实现了许多不相关的函数来实现这些过程。例如printf就是让数据从内存到显示屏(输出设备);scanf就是让数据从键盘(输入设备)到内存。此外还有从内存到磁盘的文件操作等。这些函数彼此不相关。
而C++有了继承功能,可以让子类与父类间有关联性,极大的提高各种IO功能之间的耦合性。
于是C++用继承功能重写了IO,这就是IO库。IO库引入了“流”的概念,数据从一个地方流到另一个地方,原本地方的数据就无了,叫做流很贴切。
更多内容详见Part6:IO库
,这里简单介绍一下怎么进行输入输出。
在网上下载好VLD的库后,准备在VS2022上使用它:
把VLD的include目录给加入到VS中。这里打开想要使用VLD的项目的属性页,在VC++的包含目录中添加对应的include目录:
引入VLD的静态库(lib),还是在属性页中,先添加VLD的lib路径至VC++库目录;再将对应的lib文件名添加到链接器->输入->附加依赖项中(记得32位跟64位分开配置):
引入VLD的动态库(dll),直接在项目所在文件夹中把他们扔进去就好:
在main.cpp中,首先包含vld.h
头文件,即可使用。
待补充…
Call Stack 无输出:
请保持路径是 全英文 的,并且在vld.ini中,将ReportEncoding由ascii改为unicode.
Boost是一个功能强大,构造精良,跨平台的C++程序库,内容涵盖很多领域,C++11标准库中三分之二就来自它,是C++的“准”标准库。
进入Boost 官网,选择想要下载的版本,下载即可(windows平台是zip包,unix平台是tar包)。
以windows平台为例,解压后的boost库如图:
以管理员身份运行VS2022提供的命令行工具,进入到上边的目录中:
执行bootstrap.bat
,执行完后,会发现多了个b2.exe
。接下来,利用此工具进行boost库的编译:
# 64位
b2.exe install --prefix="D:\CppLibs\Boost\x64" --build-type=complete --toolset=msvc-14.3 threading=multi --build-type=complete address-model=64
# 32位
b2.exe install --prefix="D:\CppLibs\Boost\x86" --build-type=complete --toolset=msvc-14.3 threading=multi --build-type=complete address-model=32
其中,--prefix
表示安装位置;--build-type
表示要安装那些库,这里都安装了;--toolset=msvc-14.3
表示使用微软的MSVC编译器编译,查看编译器版本可以到VS2022中查看:
全部弄好可能要三四十多分钟。
接下来,在项目的属性页中引入boost库就行了(VC++目录的包含目录和库目录):