头文件会降低程序的速度

时间:2012-09-26 15:00:09

标签: c++

我的程序遇到了一个奇怪的错误:头文件减慢了程序的速度。我使用空代码(即:main() {})测试头文件,运行该空代码需要40秒。

标题文件.h

#include "stdafx.h" 
#include <string>

#ifndef LZ_H
#define LZ_H

extern int e,i;
extern std::string dic[1000000];
void init();

#endif

函数文件.cpp

#include "lz.h"
#include "stdafx.h"
#include <string>

std::string dic[1000000];
int i=0;
int e=0;
std::string cstr(char c)                            
{  
    return std::string(1,c);  
}

void init()
{        
    for (e=0;e<=255;e++) dic[e]=cstr(e);   
        e=e-1;        
}

测试主文件.cpp

#include "lz.h"  
void main() {}

结果:40秒。 我以前从未遇到过这样的奇怪错误。

1 个答案:

答案 0 :(得分:13)

通过在.cpp文件中放置一百万个字符串的全局声明,您强制编译器在程序启动时输入代码以创建一百万个字符串对象。这就是你放缓的原因。

由于您只使用数组的前256个元素,请将其更改为256。