论坛: 编程破解 标题: void是不是可以定义数据类型? 复制本贴地址    
作者: buszker [buszker]    论坛用户   登录
还烦高手举例说明!



地主 发表时间: 04-08-24 18:15

回复: Garu [syshunter]   版主   登录
void不可以,但可以定义指针void *,意义如下
void fun(void *pvoid)
{
    .............
    char *pchr=(char *)pvoid;
    ........
}

可能你会问为什么不直接传入char *类型,那为什么malloc的原形非要是
void *malloc(unsigned)返回VOID*类型呢?明白了吧。
例如
pthread_create(...,...,(void *)函数名,(void *)参数);
你就要用到void *类型了。

也许我解释的乱

B1层 发表时间: 04-08-24 19:03

回复: Garu [syshunter]   版主   登录
忘了说:
如果有
void *pvoid;
char *pchar;
你可以
pchar=(char *)pvoid;
但不可以
pvoid=(void *)pchar;


[此贴被 Garu(syshunter) 在 08月24日20时07分 编辑过]

B2层 发表时间: 04-08-24 20:06

回复: shitalone [shitalone]   论坛用户   登录
楼上解释的不错。声明void *的目的也就是为了以后能强制为任何的指针类型。

B3层 发表时间: 04-08-25 10:26

回复: buszker [buszker]   论坛用户   登录
多谢二位的解释

B4层 发表时间: 04-08-25 15:23

回复: 286 [unique]   版主   登录
趁机学了一招.

B5层 发表时间: 04-08-25 17:31

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号