C/C++ Compile 꿀팁

AlwaysEden·2024년 8월 22일
0

CS

목록 보기
7/7

여러 개의 소스코드에서 어떤 하나의 헤더파일을 include할 때, 당연하게도 #include는 Copy&Paste 작업이기 때문에 이를 컴파일한다면 헤더파일이 중복되어 사용되었다고 에러를 발생시킵니다.

./Person.hpp:6:8: error: redefinition of 'Person'
struct Person{
       ^
SimpleHashTable.cpp:1:10: note: './Person.hpp' included multiple times, additional include site here
#include "Person.hpp"

이때 할 수 있는 꿀팁이 있습니다.
결국 컴파일이 BigBang마냥 한꺼번에 일어나지는 않고 순차적으로 컴파일될 것이기 때문에 우리는 이 특징과 Preprocessor의 특징을 이용해서 중복을 자연스럽게 예방할 수 있습니다.

#ifndef __Person_H__
#define __Person_H__

~code~

#endif

이렇게 작성한다면 처음에는 위 매크로가 define되어 있지 않기에 if문을 통과할 것이고 그리고 나서 define이 진행됩니다. 이렇게 되면 다음 소스코드에서 해당 헤더파일을 접근하더라도 이미 #define이 되어있기 때문에 바로 #endif로 점프하게 되어 자연스럽게 중복이 제거되게 됩니다.

이해하면 쉬운 Compile꿀팁. 아주 유용하게 사용하시길 바랍니다.

profile
컴퓨터 공학생입니다. 공부 하면서 겪은 문제들과 떠오르는 생각들을 써보려고합니다. 태클은 언제나 환영입니다. https://github.com/AlwaysEden

0개의 댓글