C macro 사용 시 주의사항

C/C++ 2014. 12. 3. 11:18
C 코딩 간 macro 사용 시 연산자 우선순위를 고려하여 괄호처리를 해주는 것이 좋습니다.
아래는 잘못된 macro 설정사례입니다.
#define DANGER 60 + 2
위 사례는 아래와 같은 상황에서 잘못된 결과를 초래할 수 있습니다.
int wrong_value = DANGER * 2; //  124라는 결과 값 대신 60 + 2 * 2 = 64 가 할당됩니다.
괄호처리를 하여 아래와 같이 사용해야 합니다.
#define HARMLESS (60 + 2)

'C/C++' 카테고리의 다른 글

런타임 OS 식별 팁  (0) 2009.11.10

런타임 OS 식별 팁

C/C++ 2009. 11. 10. 03:15


QT 에서 UDPSocket를 객체끼리 공유해야 할 경우 리눅스와 윈도우를 위한 별도의 옵션들이 필요할 것 같더군요. crossed flatform간의 통신지원을 위해 QTGlobal를 이용해 봤습니다.

#include "qtglobal"
...
#ifdef Q_OS_MAC
// mac
#endif

#ifdef Q_OS_LINUX
// linux
#endif

#ifdef Q_OS_WIN32
// win
#endif


'C/C++' 카테고리의 다른 글

C macro 사용 시 주의사항  (0) 2014.12.03