I am trying to understand what is a pointer to a function in c.
I am wanting some detailed process of calling a pointer to function, thus, i could understand pointer to function better.
Could somebody explain why does my code below not crash and have some wired output?
To narrow down, I am seeking something like javap which could explain how does jdk compile
my code and jvm run my code
- what is the relationship of a void return and number 14,15 or 16. (the void function return)
- is there any security problem to my second param or is it same as non-init val ?
test.c
#include <stdio.h>
#include <stdlib.h>
static void f(int x, int y){
    printf("x = %d \n",  x );
    printf("y = %d \n",  y );
}
typedef int (*FUNC)(int);
int main(void){
    long int addr = (long int)f;
    printf("%d \n",  (int)((FUNC)addr)(1) );
    return 0;
}
output on mac os compiled with i686-apple-darwin11-llvm-gcc-4.2
x = 1 
y = 1479046720 
16 
 
     
     
    