Chinaunix首页 | 论坛 | 博客
  • 博客访问: 447568
  • 博文数量: 96
  • 博客积分: 6045
  • 博客等级: 大校
  • 技术积分: 906
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-03 11:29
文章分类

全部博文(96)

文章存档

2014年(1)

2012年(22)

2011年(23)

2010年(31)

2008年(1)

2007年(18)

分类: C/C++

2011-11-15 10:21:42

void (*getDataP)(unsigned char *strData,int base,int a);//定义了一个函数指针
void getData(unsigned char *strData,int base,int a)//定义了一个函数
{
    int i;
    unsigned char str[20]={0};
    char   strMidData[10]={0};
    for(i=0;i    {
         sprintf(str,"%02x",*(strData+base+i));
         strcat(strMidData,str);
    }
     printf("%s\n",strMidData);
}
int main(int argc, char *argv[])
{
    int i=0;
    unsigned char str[6]={0x30,0x31,0x32,0x33,0x34,0x35};
    getDataP=getData;//将函数的入口地址给函数指针变量;当然函数名就是函数的入口地址
    (*getDataP)(str,0,4);
}
通过函数指针来调用函数:
(*getDataP)(str,0,4);对这句我就有点疑惑了,既然getDataP被赋值函数的入口地址;为什么调用的时候前面要添加一个*号;大家都知道如果直接调用函数的话:getData(str,0,4);就可以呀!getData是入口地址,getDataP也是入口地址;哪为什么getDataP前面要添加一个*号;
    于是将 (*getDataP)(str,0,4);前面的*号去掉,然后编译执行,结果也通过;
后来查询了一下资料,说加上*可一个,不加*也可以;奇怪...

阅读(905) | 评论(0) | 转发(0) |
0

上一篇:Firefox快捷键

下一篇:块元素与内联元素

给主人留下些什么吧!~~