Hide Function Pointer Declarations With a typedef

Hide Function Pointer Declarations With a typedef

Can you tell what the following declaration means?

   void (*p[10]) (void (*)() );

Only few programmers can tell that p is an “array of 10 pointers to a function returning void and taking a pointer to another function that returns void and takes no arguments.” The cumbersome syntax is nearly indecipherable. However, you can simplify it considerably by using typedef declarations. First, declare a typedef for “pointer to a function returning void and taking no arguments” as follows:

   typedef void (*pfv)();

Next, declare another typedef for “pointer to a function returning void and taking a pfv” based on the typedef we previously declared:

   typedef void (*pf_taking_pfv) (pfv);

Now that we have created the pf_taking_pfv typedef as a synonym for the unwieldy “pointer to a function returning void and taking a pfv”, declaring an array of 10 such pointers is a breeze:

   pf_taking_pfv p[10];
Share the Post:
data observability

Data Observability Explained

Data is the lifeblood of any successful business, as it is the driving force behind critical decision-making, insight generation, and strategic development. However, due to its intricate nature, ensuring the

Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular

XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved