#define fd(TYPE) \
        typedef struct _s##TYPE s##TYPE;

#define imp(TYPE) \
        struct _s##TYPE { \
                TYPE value; \
        };

fd(int);
imp(int);
fd(float);
imp(float);

이런 식으로 타입이름이 들어간 구조체를 선언한다고 할 때,
imp(int)를 두 번 중복 사용하면 구조체 재정의 때문에 에러가 나는데
이걸 막을 방도가 있음?

요컨대 인자가 있는 매크로 함수가 동일한 인자로 두 번 사용되면 그 두 번째 사용을 막는 방법?

#define 안에 헤더파일 중복 피할 때 처럼
#ifndef @@ ~~ #define @@ ~~ #endif
하더라도
저 @@ 이름이 각 인자에 맞게 구분되어질 수 있음?