인프런 커뮤니티 질문&답변
DirectX12 초기화 - 장치초기화 질문 있습니다.
작성
·
297
퀴즈
51%나 틀려요. 한번 도전해보세요!
윈도우즈 API 기반 게임 프로그램의 주 실행 루프가 콘솔 프로그램과 다른 근본적인 이유는 무엇일까요?
백그라운드에서만 실행되기 때문에
시스템 자원을 최소한으로 사용해야 해서
표준 입출력을 사용하지 않기 때문에
사용자 입력을 기다리지 않고 지속적으로 화면을 업데이트해야 해서
답변 1
0
Rookiss
지식공유자
C++에서 헤더 파일에서 다른 헤더 파일을 #include 하는 것은 가급적 피해야 하고
최대한 전방 선언을 사용해야 합니다.
상속 등을 사용해서 정말 해당 파일의 기능이 당장 필요할 때,
혹은 #include하는 대상이 아주 작을 경우라면 괜찮지만
그 기능이 필요하다고 #include를 헤더에서 신나게 추가하기 시작하면
나중에 구조가 수습이 안 되는 말이 발생합니다.
우선 #include에 순환이 생기는 문제가 있습니다.
A.h B.h가 있는데, A.h에서는 B.h를 #include하고,
B.h에서 A.h를 #include하면 그냥 컴파일이 되지 않습니다.
(내가 존재하려면 타인이 존재해야 하고, 그 타인이 존재하려면 내가 존재해야 한다 @_@???)
두번째로 .h에서 다른 .h를 #include하면 헤더 사이의 종속성이 생깁니다.
A.h가 B.h를 #Include하는 상황에서, B.h의 내용이 수정되면,
A.h를 #include하는 모~든 애들도 다시 컴파일 되어야 합니다.
작은 프로젝트라면 상관없을 수도 있지만
나중에 게임이 커지면 컴파일이 몇 분씩 걸릴 수도 있습니다.





