提问:
这句C语言的定义是什么意思?
下面是用到它的一个函数:
void
new_phase(p)
int p;
{
phase = p;
if(new_phase_hook)
(*new_phase_hook)(p);
notify(phasechange, p);
}
主要是解释一下这个if语句就可以了。
解答:
if语句就是判断函数指针new_phase_hook是否为空呀
new_phase_hook是一个指向函数的指针,我把他的定义处找到:
int (*new_phase_hook) __P((int)) = NULL;
好像跟别的函数指针的定义不一样,其中__P的定义为:
#ifndef __P
#ifdef __STDC__
#define __P(x)x
#else
#define __P(x)()
#endif
#endif
所以__P((int))如何解释为:
#ifndef __P
#ifdef __STDC__
#define __P(x)x 此时int (*new-phase-hook) __P((int)) = NULL展开就是int (*new_phase_hook)(int)=NULL。
#else
#define __P(x)()此时int (*new_phase_hook) __P((int)) = NULL展开就是int (*new_phase_hook)()=NULL。
#endif
#endif
阅读(1657) | 评论(0) | 转发(0) |