해결된 질문
21.10.11 14:00 작성
·
147
0
Test1.h에 있는 함수의 정의, struct StatInfo 둘다 Test1.cpp, CPP_Study.cpp 에서 인클루드 될 때 함수의 정의만 중복으로 인식 된다는 건 링크될 때 함수의 정의는 전역으로, struct StatInfo는 지역으로 인식 된다고 볼 수 있겠군요?
답변 1
1
2021. 10. 11. 17:04
음 어떤 부분을 질문하시는건지 모호한 것 같습니다.
모든 cpp 파일들은 서로 독립적으로 컴파일 되어서 합쳐지는데,
이 때 struct StatInfo는 링크되는 대상이 아니라
당장 cpp를 컴파일할 때 필요한 애라서 조금 개념이 다릅니다.
함수라면 일단 함수 시그니처만 알면, 당장 함수 내용물을 몰라도
링크 단계에서 함수 테이블을 찾아 어디로 호출하면 되는지만 기입하면 끝입니다.
반면 struct StatInfo 같은 경우에는 '나중에' 뭔가를 채우는 개념이 아니고
당장 구조체의 멤버들을 알아야 코드 결과물을 만들어낼 수 있습니다.
C++ 컴파일은 굉장히 어려운 주제이니 지금은 너무 깊이 이해하실 필요 없습니다.
2021. 10. 11. 17:49
struct는 링크되는 대상이 아니라 다르게 작동하는 거였군요. 감사합니다:)