char buffer[1000] = {0};
이렇게하면 1000 개의 요소가 모두 0으로 초기화됩니다.이 일정 시간입니까? 그렇지 않다면, 왜?일정 시간에 C++ 배열 초기화
이 O이 최적화 할 수있는 컴파일러 보인다 (1) 다음과 같은 사실에 기초하여 :
- 어레이는 고정 된 크기이며, 컴파일 시간에 공지 된 배열을 스택에 위치하고 이것은 아마도 실행 파일이 실행 파일의 데이터 세그먼트에이 데이터를 포함 할 수 있음을 의미합니다 (Windows의 경우) 이미 0으로 채워진 데이터 조각입니다.
답변은 모든 컴파일러에서 일반적 일 수 있지만 Windows의 MSVC 컴파일러 (모든 버전)에서 테스트 한 답변에 특히 관심이 있습니다.
보너스 포인트 : 자세한 내용은 기사, 백서 등의 링크를 참조하십시오.
어떤 문맥입니까? 공전? – user7116
한 문단에서 O 표기법과 "컴파일 시간"에 대해 이야기하는 것은 의미가 없습니다. –
@ n.m. 나는 컴파일 시간이나 퍼포먼스에서와 같이 "컴파일 시간"을 언급하지 않고 컴파일 시점, 즉 컴파일 단계에서 어떤 정보가 있는지를 나타 내기 위해 "컴파일 시간"을 언급합니다. –