【发布时间】:2015-11-09 21:46:34
【问题描述】:
我无法解决下面这段代码。
当我编译包含下面这段代码的整个文件时,我看到一个警告(如下所示),如果从整个 *.c 文件中排除,我看不到它。
代码:
int * ( * get_ptr1)(int) = (int* )0x234456;
printf("The address of the func_ptr is %x\n", get_ptr1);
警告信息:
Initialization from incompatible pointer type
谁能解释一下为什么我会看到这个警告以及上面代码中需要纠正的地方。我正在使用 C99 标准编译器。
如果我的标题不是很具体,请多多包涵。
【问题讨论】:
-
int * ( * get_ptr1)(int) = (int* )0x234456;- 你希望这条线做什么? -
我正在尝试为函数指针提供地址 0x234456。我在 linux 内核中看到了这段代码,我试图理解它的功能。如果你能用一些不同的例子来解释我,我将不胜感激。
-
int* (*)(int)不是int*