代码文件的组织
一个 C++项目中推荐使用以下这些目录来对相应的文件和库进行归集。
build/
,项目编译目录,用来存放编译的临时文件和最终目标文件,其中可以继续建立debug/
和release/
目录来分别存放调试用可执行文件和发布用可执行文件。dist/
,项目发布目录,用来存放最终可以发布的可执行文件和全部支持文件。doc/
,项目文档目录。include/
,公共头文件目录,可以按照模块来划分组织各个模块的头文件。lib/
,外部依赖库目录。res/
,资源目录。samples/
,示例代码目录。src/
,项目源代码目录。tools/
,项目支持工具目录。makefile
,项目构建配置文件。CMakeLists.txt
,CMake 配置文件。
项目的源码可以直接在项目根目录中放置也可以选择放置在src/
目录中,头文件可以放在根目录中,也可以放在include/
目录中,这完全由个人和团队的喜好决定。
后文中将要提到的命名空间,与项目目录结构毫无关联,请勿将其混淆。但#include
预处理指令与项目目录结构关联较深,需要注意。
每个 C++应用都是从main()
函数开始执行的,不论main()
函数位置在什么地方,应用中应该有且仅有一个main()
函数。C++允许main()
函数带有或者不带参数列表,但main()
函数返回值始终是整型。main()
函数的声明一般是以下固定形式:int main(int argc, char *argv[])
,其中argc
表示程序接收到的参数的数量,argv[]
用于接收传递来的参数,参数是以字符串数组的方式传递来的。具体main()
函数的定义会在后文中具体说明。