I used IDA Pro and got the following expression from a produced C file:v25 = (*(int (**)(void))(v22 + 464))();I am trying to figure out the meaning of the above expression with the following links:http://www.unixwiz.net/techtips/reading-cdecl.htmlhttp://www.codeproject.com/Articles/7042/How-to-interpret-complex-C-C-declarationsI start with (v22 + 464) and then go out of the parenthesis and to the left to the following *(int (**)(void)).But, still can't understand. Any hints?EDIT: I guess this expression is not a declaration but a function call.(v22+464) is then cast to a pointer to a pointer to a function that takes void as an argument and returns an int. Then that pointer is dereference and the () operator is applied - the function is called.
Declaration of a complex C expression
ida;c;functions
(*(int (**)(void))(v22 + 464))() is a function call (v22 is an object (perhaps a vtable) that contains a function pointer).