这个定义怎么理解?
定义了一个函数
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);