토큰 붙여넣기 연산자 (##)
int token10 = 1;
#define paster(t) printf_s( "token" #t " = %d", token##t )
paster(10);
결과 : token10 = 1
위와 같은 define이 되어있으면 paster 넣어야 할 값은 상수를 넣어야 한다.
만약 변수를 넣으면 어떻게 될까?
위 소스를 예를 들어 아래 소스를 재구성 해보자.
int test_int =10;
paster(test_int);
이러면 define 부분에 printf_s( "token" #10 " = %d", token##10 ) 이 되는게 아니다.
결과는 printf_s( "token" #test_int " = %d", token##test_int ) 가 되어 버린다.
이걸 해결하려고 여러번 시도 했지만 아직 까지 좋은 방법을 찾지 못했다.
'Language & API > C' 카테고리의 다른 글
C C++ 윤년 평년 구하기 (0) | 2017.05.15 |
---|---|
[코딩]VS2013 printf 64bit 주소 출력하기 (0) | 2017.05.02 |
[코딩]문자열 리터럴 연결 (0) | 2017.04.27 |
strcpy 와 strcpy_s 차이점 (0) | 2017.04.24 |
Visual Studio main 명령 인수 넣기 및 인수 사용방법 (0) | 2015.10.20 |