기타/문제해결기
(당연하지만 모를 수 있는) #ifdef를 이용한 분기 동작
십자성군
2017. 4. 7. 06:54
다음과 같은 소스파일이 있다고 하자.
A.cpp
void testMainFunction(){
#ifdef LittleEndian
cout<< "LittleEndian Action" << cout;
#else
cout<< "BigEndian Action" << cout;
#endif
}
B.cpp
#define LittleEndian
void testB(){
testMainFunction();
}
C.cpp
void testC(){
testMainFunction();
}
B와 C에서 같은 함수를 호출하지만 결과는 서로 다르다.
만약 어떤 MCU가 서로 다른 두 센서에 시리얼 포트로 데이터를 전송한다고 하자.
첫번째 센서가 LittleEndian으로 데이터를 수신하고 두번째 센서가 BigEndian으로 데이터를 수신한다면 위와 같은 방법을 이용하면 같은 각각의 센서에 대해 큰 변동없이 같은 함수를 호출하여 대응할 수 있다.