Может кто-нибудь объяснить это поведение мне PLS?Преобразовать адрес в долгосрочные переменные результаты в стоимости?
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'. –