Есть ли способ напечатать указатель на функцию в 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: В функции" main ":
test.c: 6: предупреждение: ISO C запрещает преобразование указателя функции для указания типа указателя
test.c: 7: предупреждение: ISO C запрещает преобразование указатель на указатель объекта тип
$./test
0x400518
0x400518
Это "работает", но нестандартно...