도전2022
## 연산자에 대한 이해 본문
SMALL
http://www.winapi.co.kr/clec/cpp2/18-2-1.htm
## 연산자에 대한 이해
## 연산자(merge operator) 역시 #define 문 내에서만 사용되며 형식 인수 사이에 위치한다. 형식 인수를 분리하여 각각 치환되도록 하며 치환 후에는 주변의 공백과 함께 사라져 두 인수의 치환 결과가 하나의 토큰으로 연결될 수 있도록 한다. 다음 예제를 보자.
var 매크로는 두 개의 형식 인수를 받아 들여 이 두 명칭을 연결해서 하나의 명칭으로 만드는데 형식 인수 a와 b 사이에 ## 연산자가 사용되었다. 만약 ## 연산자없이 var(a,b) (ab)로 정의한다면 전처리기가 ab를 a와 b 인수가 아닌 별도의 명칭으로 인식하므로 실인수로 치환되지 못하고 그대로 ab로 남아 있을 것이다. 이 두 형식 인수가 ##에 의해 구분됨으로써 양쪽 모두 실인수로 치환되며 치환 후에 ##은 사라진다. var(Total, Score)가 치환되는 과정은 다음과 같다.
##은 주변의 공백까지 같이 제거하므로 매크로 정의문의 ## 좌우 공백은 무시된다. (a##b)로 쓰나 (a ## b)로 쓰나 결과는 동일하다. ##은 치환전에 두 토큰을 분리하여 각 토큰이 치환될 수 있도록 구분하는 역할을 하며 치환 후에는 주변의 공백과 함께 자폭하여 두 토큰을 하나로 연결한다. 이 연산자는 주로 일괄적인 타입 정의에 사용된다.
LIST
'행복한가족만들기' 카테고리의 다른 글
다양한 영어문장 (0) | 2012.05.18 |
---|---|
맥 키보드, 마우스 사용하기 (0) | 2010.11.29 |
SPTDinst (0) | 2010.11.24 |
GAME] Batman 1.0 download page (0) | 2010.11.19 |
애플 특허 (0) | 2010.11.19 |