CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2002년 8월 16일 금요일 오후 04시 00분 59초
제 목(Title): Re: [Q] C 의 Macro 질문


왜 이런 매크로를 쓰시는지는 짐작이 안 가지만...
##는 그저 매개변수를 그대로 concatenate할 뿐입니다.
숫자 literal을 이름으로 하는 정수 타입으로 만들기에 좋겠네요.

#include <stdio.h>

#define VAR(x, y) typedef int __##x##y##__
VAR(A,B); // __AB__라는 int 타입을 정의 
VAR(int,3); // __int3__ 라는 int 타입을 정의

int main()
{
    __AB__ ab = 4; // __AB__라는 int 타입의 변수 ab를 선언하면서 초기화
    __int3__ i = 3;

    printf("%d %d\n", ab, i);
   
    return 0;
}



---
어떤 성취가, 어떤 조롱이, 또는 어떤 고뇌가 나를 기다리고 있을지 나는 모른다. 
나는 아무 것도 모른다. 그러나 나는 아직 과거의 경이로운 기적의 시대가 영원히 
과거의 것이 되어 버리지는 않았다는 사실을 굳게 믿고 있다.  - Stanislaw Lem -
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.