注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深海精灵

水里的一滴油,透明地飘零在空气中。。。

 
 
 

日志

 
 
关于我

神秘诡谲,令人费解。可以很执着,也可以很破坏。冰冷,沉默。渴望单纯,渴望自由。躲在文字的背后,用心聆听世界,用直觉洞察世情。

网易考拉推荐

标签地址  

2012-07-24 15:14:12|  分类: 例程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  这是一条普通的跳转语句:

......
goto label;
......
lable:
......

  相信大家都使用过,但标签地址,相信就不是很多人都用过了。

  什么是标签地址,说简单了就是标签的地址,标签也有地址的。而获得标签的地址就要使用&&符号获得,并且这个地址要存储在一个空(void)类型的指针中。下面举一个例子来说明如果使用标签地址:

int main(void)
{
    void *target;
    if(flag==0)
        target = &&TEST1;
    else
        target = &&TEST2;
    TEST1:
        return(0);
    TEST2:
        return(0xFF);
}

  上面的例子是一种使用标签地址的普通用法,我们还可以把标签地址存入数组中,然后根据数组索引的不同跳转到不同的地方,如下:
void *loc[]=={&&label1, &&label2, &&label3,...};
……
goto *loc[m];
  标签地址可以让我们更灵活的使用跳转语句。

 

  在此,补充另外一种以表形式调用函数的方法:
{ void (*tar[5])(void)={K1,K2,K3,K4,K5};
  tar[keyval]();  }
void K1(void) {...};
void K2(void) {...};
void K3(void) {...};
void K4(void) {...};
void K5(void) {...};

 

  评论这张
 
阅读(197)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017