매크로를 이용하는 것 중에.
글쓴이: parrier / 작성시간: 월, 2008/11/24 - 7:51오후
#define을 이용한 매크로 중에
#define MAXGage (100)
처럼 괄호를 치는 이유는 무엇인가요?
그리고, #define DLLTYPE int
이런 식으로 하는 것은 어떤 의미가 있나요? 왜 그냥 타입 선언을 int로 해서 32bit 정수형이라는 것을 알리지 않고 굳이,
DLLTYPE dllTYPE;
이런 식으로 선언하는 것인지요? 이렇게 하면 저 타입이 int형이라는 것을 알기 위해서 또 찾아넘어가야 할 것 같은데 말이지요 ;.;
Forums:
괄호를 치는건 주로
괄호를 치는건 주로 매크로 함수 사용시에 사용하는데요,
#define sum(x,y) x+y 로 선언하면
sum(x,y)*2 가 x+y*2가 되어 연산 순서가 의도와 달라지므로 이를 방지하기 위해 사용합니다.
단순 리터럴을 괄호로 묶는것도 비슷한 이유 내지는 습관이 아닐까 싶네요.
#define DLLTYPE int 같은 경우는
DLLTYPE이 차후에 변경될 여지가 있다거나, 다른 환경(CPU, 컴파일러, 등등) 에서는 다른 자료형이 필요하다거나,
단순히 해당 변수가 DLL 타입이라는걸 확실히 나타내주기 위해 사용합니다.
"숫자"로만 사용되게
"숫자"로만 사용되게 하기 위해섭니다.
"저 타입이 int형이라는 것" 에 집중하지 않도록 하기 위해섭니다.
왜 typedef 가 아니라 #define 을 사용했는지는 올려주신 코드만으론 모르겠습니다.
OTL
댓글 달기