#define
에 매크로입니다 난 할 노력하고있어 :문자
#define a(2)
나중에 문자열 리터럴 내부에 사용 : string = "a";
.
문자열을 문자열로 해석하지 않고 a
값을 얻으려고합니다. 2. 성공하지 못했습니다. 아무도 도움이 될 수 있습니까?
#define
에 매크로입니다 난 할 노력하고있어 :문자
#define a(2)
나중에 문자열 리터럴 내부에 사용 : string = "a";
.
문자열을 문자열로 해석하지 않고 a
값을 얻으려고합니다. 2. 성공하지 못했습니다. 아무도 도움이 될 수 있습니까?
#define STRINGIFY2(X) #X
#define STRINGIFY(X) STRINGIFY2(X)
#define A 2
그런 STRINGIFY(A)
당신에게 "2"
을 줄 것이다. 나란히 놓아 다른 문자열 리터럴과 연결할 수 있습니다.
"I have the number " STRINGIFY(A) "."
은 "I have the number 2."
입니다.
인접한 문자열 리터럴이 연결되어있는 중요한 요소를 추가하십시오. 이것은 답변입니다. – pmr
아니요, 문자열 리터럴 내부에 매크로 확장을 수행 할 수 없습니다. 즉, 매크로가 확장되도록 리터럴 내부를 들여다 보는 전 처리기가 있어야합니다.
stringify 연산자 (#
)로 시작하는 문자열 리터럴을 생성하려면 매크로 확장을 사용할 수 있습니다. 그러나 그것은 다른 것입니다.
@Jefffrey - 그 모자는 당신의 공룡을 위해 특별 제작되었습니다. – Maroun