Search code examples
cfunction-pointers

Cast to function pointer


I have come across the line of code shown below.

I think it may be a cast to a function pointer that returns void and takes a void pointer. Is that correct?

(void (*)(void *))SGENT_1_calc

Solution

  • Yes, it is correct. I find that not very readable, so I suggest declaring the signature of the function to be pointed:

     typedef void sigrout_t(void*);
    

    I also have the coding convention that types ending with rout_t are such types for functions signatures. You might name it otherwise, since _t is a suffix reserved by POSIX.

    Later on I am casting, perhaps to call it like

     ((sigrout_t*) SGENT_1_calc) (someptr);