How to print pointer to function?

Josef Wolf jw@raven.inka.de
Thu Dec 12 11:00:00 GMT 2019


Thanks for the help, Liu!

This silenced the warning.

On Thu, Dec 12, 2019 at 05:49:17PM +0800, Liu Hao wrote:
> 在 2019/12/12 17:21, Josef Wolf 写道:
> > Hello,
> > 
> > I would like to print the pointer to a function for debugging purposes.
> > 
> > But I keep getting a warning:
> > 
> >   ttt.c: In function 'insert_transfer':
> >   ttt.c:7:37: warning: ISO C forbids conversion of function pointer to object pointer type [-Wpedantic]
> >       7 |     printf ("lost transfer %p\r\n", (void*)rdyfunc);
> > 
> > Is there any way to get rid of this warning?
> > 
> 
> Casting the point-to-function to `intptr_t` followed by `void*` will
> silence the warning:
> 
> ```
> printf ("lost transfer %p\r\n", (void*)(intptr_t)rdyfunc);
> ```
> 
> This may also help if you attempt to cast between different types of
> function pointers.
> 
> 
> -- 
> Best regards,
> LH_Mouse
> 




-- 
Josef Wolf
jw@raven.inka.de



More information about the Gcc-help mailing list