假设以下代码是为相同目的编写的。程序的其余代码是相同的。
代码1
#include <vector>
using namespace std;
vector<int> vector1;
vector<int> vector2;
vector<int> vector3;
vector<int> vector4;
代码2
#include <vector>
using namespace std;
vector<int> vector1;
vector<short> vector2;
vector<char> vector3;
vector<bool> vector4;
现在哪个更好(就可执行文件大小而言)?(提示:考虑可执行文件)
我比较了 g++ -S 给出的汇编结果。
令人惊讶的是,第二个程序的行数是 1778 ,第一个是 630。这意味着第一个更好。
为了解释这种行为,我为“如何编译基于模板的程序”寻找了一个很好的资源,但我找不到。
编译器如何将使用模板的程序编译成程序集?你有好的资源吗?(这不是作业,而是在我的工作场所给出的自学问题。你是否觉得不给答案至少将我引导到一个好的资源)