有这样的写法,(void*)f(int a,int b);有点不明白。

[复制链接]
1001|7
 楼主| zyf部长 发表于 2015-2-8 15:23 | 显示全部楼层 |阅读模式

有这样的写法,(void*)f(int a,int b);有点不明白。
小小猫咪 发表于 2015-2-8 15:25 | 显示全部楼层

int(*p)(int a,int b);这个是指针函数的调用。
int *p(int a,int b);这个是返回值是指针类型。
kangzj 发表于 2015-2-8 15:25 | 显示全部楼层
上面的那个(void *)这种空指针没有说明具体的指针变量,好奇怪,到底是什么意思呢???
zwll 发表于 2015-2-8 15:27 | 显示全部楼层
亦即可以指向任意类型
chuxh 发表于 2015-2-8 15:27 | 显示全部楼层
我的理解是:
定义了一个函数,该函数返回值为指针类型,但未指明其指向的数据类型,之后如果要调用该函数,得到其返回值,则必须将其进行强制类型转换。
chuxh 发表于 2015-2-8 15:28 | 显示全部楼层
如:

/* 定义 */
(void*) f (int a, int b);
{
     int c = 0;
     c = a + b;

    return(c);
}

/* 调用 */
void main(void)
{
     char d = 0;
     while(1)
     {
         d = (char) f (5, 6);    //此处必须为 f() 函数指定返回值类型
         ......
     }
}
juventus9554 发表于 2015-2-8 15:29 | 显示全部楼层
这应该是C语言中指针没有返回值的函数
 楼主| zyf部长 发表于 2015-2-8 15:30 | 显示全部楼层
OK ,I Know
您需要登录后才可以回帖 登录 | 注册

本版积分规则

694

主题

7102

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部