[C] C언어 #연산자, ##연산자, c ## macro, 토큰 붙여넣기 연산자

728x90
반응형

매크로(macro)에서 # 연산자는 문자열로 치환해 주는 연산자다. 예를 들어 설명하면,

 

#include <stdio.h>

#define STR_PRINT(str)		printf(#str)

int main(void)
{
    STR_PRINT(MACRO TEST);
    
    return 1;
}

 

위 코드의 실행 결과는 "MACRO TEST"다. 실행결과에서알수 있듯이 #연산자는 매크로에 전달된 문자를 문자열로 치환해 주는 연산자다.

매크로의 매개변수를 문자화 시켜주는 연산자다.

 

## 연산자는 이어 붙여주는 기능을 한다. 예를 들면

#include <stdio.h>

#define MAKE_VARIABLE(n)   int k##n = n
#define PRINT_VARIABLE(n)  printf("%d\n", k##n)
int main()
{
    for(int p = 0; p < 10; p++) {
        MAKE_VARIABLE(p);
        PRINT_VARIABLE(p);
    }
    
    return 1;
}

위 코드의 실행결과는 

0

1

2

3

이다.

 

#연산자와 ## 연산자는 반복되는 구조체나 변수를 만들 때 많이 사용하고 반복되는 어떤 문자열을 만들 때도 많이 사용한다.

 

- 끝 -

728x90
반응형