이상한 매크로 construstion :내가 지금 포팅하고있어 C 소스에서이 매크로를 발견
#define Round256(p0, p1) \
X##p0 += X##p1;
그 코드에 어떤 변수 X 없습니다입니다. 누구든지이 문맥에서 기호 #이 무엇을 말해 줄 수 있습니까?
이상한 매크로 construstion :내가 지금 포팅하고있어 C 소스에서이 매크로를 발견
#define Round256(p0, p1) \
X##p0 += X##p1;
그 코드에 어떤 변수 X 없습니다입니다. 누구든지이 문맥에서 기호 #이 무엇을 말해 줄 수 있습니까?
##
이 붙여 넣기 연산자 :
Round256(one, two)
가로 변환됩니다 다음과 같이 불리는 경우 예에 따라서
. X (문자 그대로)와 각 값을 연결합니다. 따라서Round256(one, two)
은
Xone += Xtwo
으로 변환됩니다.
는
##
은 두 개의 문자열을 함께 추가합니다.
Xone += Xtwo;
매크로는 단순히
는이
Round256(1,2)
처럼 불렀다 그것은 변수 X1을 닮은 것 같다
X1 += X2
로 전처리에 의해 확장 될 것입니다 가정 값을 stringizes .. .n 어딘가에 ....
##
concatena 문자열 화 된 값을 함께 검사합니다.
내가 수치 값을 사용한 이유는 매크로 자체의 이름에 있습니다.
어리석은 매크로와 어리석은 이름. 이식 된 코드에서 제거하고 코드에서 올바른'+ ='문을 사용하십시오. –