struct fb_info{
chsr modename[40];
...
...
int(*changvar)(int);
int(*switch_con)(int,struct fb_info*);
int(*updatevar)(int,struct fb_info*);
}
我的问题是if(fb_info.changevar) //表达了什么意思
(*fb_info.changevar)(con); //*fb_info.changevar 的解释
能不能给我解释一下这个if 语句
谢谢大家
int(*changevar)(int);//ä½ å°äºäºä¸ªe
è¿æ¯ä¸ä¸ªå½æ°æéï¼è¿ä¸ªchangevaræéæåä¸ä¸ªè¿æ ·çå½æ°ï¼è¿ä¸ªå½æ°æä¸ä¸ªintååæ°ï¼è¿åå¼ä¹æ¯int.æ以if(fb_info.changevar) çææå°±æ¯å¤æç»æä½fb_infoä¸çchangevaræ¯å¦ä¸ºç©ºï¼çåäºif(fb_info.changevar==NULL) .
è(*fb_info.changevar)ï¼conï¼å°±æ¯ç¨changevarè°ç¨ä¸ä¸ªconå½æ°äºï¼conå½æ°ä¹æ¯ä¸ä¸ªåªæä¸ä¸ªintåæ°ï¼è¿åå¼æ¯intçå½æ°ï¼æ¤æ¶ ç»æä½fb_infoçå½æ°æéchangevaræåconè¿ä¸ªå½æ°ãå°±åæ®éçåéæéæåä¸ä¸ªåéçææä¸æ ·çã
å¸æå¯¹ä½ æ帮å©ï¼è¿½é®
è¿æ¯ä¸ä¸ªå½æ°æéï¼è¿ä¸ªchangevaræéæåä¸ä¸ªè¿æ ·çå½æ°ï¼è¿ä¸ªå½æ°æä¸ä¸ªintååæ°ï¼è¿åå¼ä¹æ¯int.æ以if(fb_info.changevar) çææå°±æ¯å¤æç»æä½fb_infoä¸çchangevaræ¯å¦ä¸ºç©ºï¼çåäºif(fb_info.changevar==NULL) .
è(*fb_info.changevar)ï¼conï¼å°±æ¯ç¨changevarè°ç¨ä¸ä¸ªconå½æ°äºï¼conå½æ°ä¹æ¯ä¸ä¸ªåªæä¸ä¸ªintåæ°ï¼è¿åå¼æ¯intçå½æ°ï¼æ¤æ¶ ç»æä½fb_infoçå½æ°æéchangevaræåconè¿ä¸ªå½æ°ãå°±åæ®éçåéæéæåä¸ä¸ªåéçææä¸æ ·çã
å¸æå¯¹ä½ æ帮å©ï¼è¿½é®
æåæçé®é¢æè¿°ä¸åç¡®
fb_info.charevar 解éä¸ä¸æ¯ä¸æ¯è¿æ · charvevaræ¯æåä¸ä¸ªå½æ°å
¥å£å°åçæé
å¦ä½charevaråæ¯fb_infoç»æä½çæå æ以fb_info.charevar æ¯ä¸ä¸ªæé
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-07-19
int(*changvar)(int);
changvar表示指向函数的指针
该函数指针存放的是一个函数的首地址
假如该函数指针为空表示没有对应的函数
如果赋值了的话,那么就可以调用
(*fb_info.changevar)(con); 就是调用该函数
changvar表示指向函数的指针
该函数指针存放的是一个函数的首地址
假如该函数指针为空表示没有对应的函数
如果赋值了的话,那么就可以调用
(*fb_info.changevar)(con); 就是调用该函数
第2个回答 2012-07-19
int(*changvar)(int); //这是个函数指针,可以指向有一个int参数并且返回int的函数
if(fb_info.changevar) //这个意思是if(fb_info.changevar!=0)
(*fb_info.changevar)(con); //以con为参数,执行changver指向的函数
if(fb_info.changevar) //这个意思是if(fb_info.changevar!=0)
(*fb_info.changevar)(con); //以con为参数,执行changver指向的函数
第3个回答 2012-07-19
if (fb_info.changevar),等价于if (fb_info.changevar != NULL)
(*fb_info.changevar)(con)的意思是调用这个函数
这个结构是用C实现的对象封装,如果你学过C++就很容易理解了
这些函数指针相当于这个对象的一些方法函数
(*fb_info.changevar)(con)的意思是调用这个函数
这个结构是用C实现的对象封装,如果你学过C++就很容易理解了
这些函数指针相当于这个对象的一些方法函数
第4个回答 2012-07-19
fb_info.changevar是函数指针,在判断中是用来判断这个指针是否已经被指定了函数;如果没有初始化,则不确定指针的内容,使用时会报错;如果指定为0,则表明不指向任何函数;所以这里的判断是等价于if (fb_info.changevar != NULL),只能判定有没有指向0;
(*fb_info.changevar)(con)是调用函数,等价于 fb_info.changevar(con);
(*fb_info.changevar)(con)是调用函数,等价于 fb_info.changevar(con);
第5个回答 2012-07-19
我擦·· 太高深