2011-06-13 9 views

답변

17

Yes. Yes, it is.

정적 초기화는 그들이 범위에있는 한, 함수를 호출 할 수 있습니다.

[dcl.decl] (2003 문구, 8/2) :

초기 값도 선언자에서 지정 될 수 있습니다; 이니셜 라이저는 8.5 및 12.6에서 논의 된 입니다.

[dcl.init] (2003 표현 8.5/2)

자동 등록, 정적 리터럴과 관련된 임의 식에 의해 초기화 될 수있는 공간 범위의 외부 변수 은 이전에 변수로 선언되었고 함수는입니다.

(의미의 모든 종류가있는 static 키워드의 부족에 의해 현혹하지 마십시오. 여러분의 myvar 변수가 네임 스페이스 범위에서 선언, 따라서 정적 저장 기간을 가지고 있습니다.)

+2

하는 경우 주문을 할 때주의해야합니다. 정적 이니셜 라이저가 다른 번역 단위에있을 때 실행되는 순서를 보장 할 수 없습니다. 이니셜 라이저가 다른 전역 변수를 사용하지 않는다면 물론 문제는 없습니다. – bdonlan

+0

@bdonlan : 맞아. –

관련 문제