question about Class member function calling
int speex_decode(void *state, SpeexBits *bits, float *out)
{
return (*((SpeexMode**)state))->dec(state, bits, out);
}
Above function declaration can be changed to be that as follows?
int speex_decode(void *state, SpeexBits *bits, float *out)
{
return ((SpeexMode*)state)->dec(state, bits, out);
}
Why? Thank in advance.
HyeeWang
Quote:Original post by hyeewang
(*((SpeexMode**)state))
Above function declaration can be changed to be that as follows?
((SpeexMode*)state)
No, you are throwing away one level of indirection this way. Let me clarify with a simpler example:
int i = 5;int * p = &i;void* v = &p;std::cout << **((int**)v) << std::endl; // prints 5std::cout << * ((int* )v) << std::endl; // prints arbitrary memory address
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement