#include
#define PI 3.14
typedef int uint32_t;
/*
pfun is a pointer
and its type is void (*)(void)
*/
void (*pfun)(void);
/*
afer typedef like this
we can use “pfun1” as a data type to a function
that has form like:
/ ------------------------------- /
- function has no return value
- function has no paramter
void function name;
/ ------------------------------- /
you can find an example in main fucntion.
*/
typedef void (*pfun_typedef)(void);
void PrintHello(void);
int main()
{
uint32_t i = 1;
pfun = PrintHello;
pfun_typedef p = PrintHello;
printf("%d\n", i);
printf("%f\n", PI);
pfun();
/*
p is function pointer that has a data
type p, which has been typedef like this:
/ ------------------------------- /
typedef void (*pfun_typedef)(void);
/ ------------------------------- /
so we have a shorten form of function pointer
*/
p();
return 0;
}
void PrintHello(void)
{
printf(“Hello World\n”);
}