首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个定义如何理解

2012-03-05 
这个定义怎么理解?定义了一个函数void(*theKernel)(intzero,intarch,longparams_addr)(void(*)(int,int,l

这个定义怎么理解?
定义了一个函数

void   (*theKernel)(int   zero,int   arch,long   params_addr)=(void   (*)(int,int,long))KERNEL_RAM_BASE;

然后调用这个函数就是这样

theKernel(0,ARCH_NUMBER,(long)kernel_params_start);

希望解释一下,这个函数的定义,我没见过这样种形式的,定义一个函数后面居然加个=号,实在是费解,最后一个括号外面竟然还有一段文字 "KERNEL_RAM_BASE ",实在是搞不懂啊!

[解决办法]
这个不是函数,是函数指针。楼主看看书上相关的内容就懂的了。
KERNEL_RAM_BASE应该是一个宏,干什么用的要看它的定义。
[解决办法]
写成这样就容易理解了
typedef void (*PFUNC)(int,int,long)

PFUNC theKernel = (PFUNC)KERNEL_RAM_BASE;

theKernel(0,ARCH_NUMBER,(long)kernel_params_start);

热点排行