내 프로그램에서 이상한 오류가 발생했습니다. 헤더 파일로 인해 프로그램 속도가 느려집니다. 헤더 파일을 빈 코드 (즉 : main() {}
)로 테스트하고 빈 코드를 실행하는 데 40 초가 걸립니다.헤더 파일의 프로그램 속도가 느려짐
헤더 파일
#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 "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"
void main() {}
결과를있는 .h : 40 대. 이전에 그런 이상한 오류를 본 적이 없습니다.
사이드 참고 : 라인이 끝나기 전에 모든 공간은 무엇인가? 또한, 긴 실행 시간이 백만 가지'std :: string'과 관련이있을 수 있습니까? – Shahbaz
전역이 기본값으로 초기화됩니다. 그래서 배열은 빈 문자열로 채워지는지 여부와 관계없이 빈 문자열로 채워집니다. (부인 : 특정 유형의 초기화에 대해서는 틀릴 수도 있지만 동일한 원칙이 적용됩니다). – BoBTFish
헤더 파일에''stdafx.h ''를 포함하면 안됩니다. 대신 원본 파일에 포함될 첫 번째 파일이어야합니다. –