我正在练习建立链接列表,并考虑将我的功能分成单独的文件,并将所有内容与主文件分离。
这是我提出的文件结构
./
functions
printlist.cpp
functionbcd.cpp
functions.h
LinkedList.cpp
Node.h
LinkedList.cpp中的头文件
#include "functions.h"
#include <bits/stdc++.h>
using namespace std;
functions.h中的头文件
#include <bits/stdc++.h>
#include "Node.h"
&#34中的头文件;已实现的任何功能&#34; .cpp
#include <bits/stdc++.h>
#include "..\functions.h"
using namespace std;
编译命令
g++ -ggdb -O2 -std=c++14 LinkedList.cpp functions\*.cpp
现在如果我保留上面提到的结构,我的编译时间比我保留的结构多4-5倍,并在main文件中定义所有函数。
我无法理解这一点。
如果有更好的方法来构建我的文件并改善编译时间,请告诉我们。
谢谢。
答案 0 :(得分:1)
每个文件都有固定的开销,即为每个文件启动实际的编译器,包括解析&#34;公共部分&#34; (即库包括)和链接器必须执行的一些每个文件的工作量。
鉴于您编写的实际代码很少,每个文件的时间成本实际上大致总是相同,并且大致相当于此固定开销;所以,你所看到的行为并不奇怪。
基于两个原因,分离到不同的文件开始在性能方面有意义:
(除了明显分离不同模块/类的文件所带来的明显的可维护性优势)