아무도 나 에게이 행동을 설명 할 수 있습니까? 나는이 같은 주에이 함수를 호출하면주소를 long - variable 결과를 값으로 변환 하시겠습니까?
static short nDoSomething(const char* pcMsg, ...)
{
va_list pvArgument;
long lTest;
void* pvTest = NULL;
va_start(pvArgument, pcMsg);
pvTest = va_arg(pvArgument, void*);
lTest = (long) pvTest;
va_end(pvArgument);
return 0;
}
는 :
int main(int argc, char* argv[])
{
char acTest1[20];
nDoSomething("TestMessage", 1234567L, acTest1);
return 0;
}
나는 pvTest의 주소가 lTest에있을 것이라고 생각하지만, 사실은 ... 1234567 포함
이것이 어떻게 가능한지?
_of_'pvTest' 주소를 말할 때 :'pvTest' 주소가 가리키고 있습니까? 그리고 왜 당신이 '1234567'이라는 것을 왜 혼란 스럽습니까? 맞습니까? – jogojapan
네 맞습니다! – skylla
'pvTest'의 주소를 얻기 위해서는'(long) & pvText' 주소를 가져야합니다. –