我试图了解什么是指向 c 中函数的指针。
我想要一些调用函数指针的详细过程,因此,我可以更好地理解函数指针。
有人可以解释为什么我下面的代码不会崩溃并且有一些有线输出吗?为了缩小范围,我正在寻找类似javap
的东西可以解释如何jdk
编译我的代码和jvm
运行我的代码
- void 返回和数字 14,15 或 16 的关系是什么。(void 函数返回)
- 我的第二个参数有任何安全问题还是与非初始化 val 相同?
测试.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;
}
使用编译的 mac os 上的输出i686-apple-darwin11-llvm-gcc-4.2
x = 1
y = 1479046720
16