【发布时间】:2015-12-13 12:16:12
【问题描述】:
我有一个指向返回 const char 指针的函数的指针。我的问题是如何打印指针以及指针引用的对象(字符串本身)。
代码如下:
#include <stdio.h>
char const *func(void)
{
printf("Printed func string.\n");
return "Pointed func string.\n";
}
int main(void) {
char const *(*fp)(void) = func;
/*print statements here*/
return 0;
}
我收到ISO C forbids conversion of function pointer to object pointer type 或一些未定义的行为。
编辑:
int main(void) {
char const *(*fp)(void) = func;
unsigned char *p = (unsigned char *)&fp;
/*print statements here*/
printf("The: %p\n",(char *) p);
return 0;
}
输出:0x7fff36753500
不正确。
【问题讨论】:
-
将函数指针转换为 char 指针,取消引用,使用 unsigned char *.
-
在 Linux 上,您可能会考虑使用
dladdr来获取名称,给定 global 函数的地址
标签: c function pointers function-pointers