在 ANSI C 中有没有打印函数指针的方法?当然这意味着你需要将函数指针转换为 void 指针,但似乎这是不可能的?
#include <stdio.h>
int main() {
int (*funcptr)() = main;
printf("%p\n", (void* )funcptr);
printf("%p\n", (void* )main);
return 0;
}
$ gcc -ansi -pedantic -Wall test.c -o test
test.c: In function 'main':
test.c:6: 警告:ISO C不允许将函数指针转换为对象指针类型
test.c:7: 警告:ISO C不允许将函数指针转换为对象指针类型
$ ./test
0x400518
0x400518
虽然“工作”,但是非标准的...