有人可以向我解釋這種行爲嗎?將地址轉換爲長變量結果的值?
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'指向,對吧?你很困惑,爲什麼_that_是'1234567',對嗎? – jogojapan
是的,這是正確的! – skylla
要得到'pvTest'的地址,你必須得到它的地址:'(long)&pvText'。 –