谁可以解释一下这句的含义?有什么用呀!

compboy1 2004-05-06 07:12:56
#define USE_VOID(x) (void *)x = (void *)x
...全文
70 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
compboy1 2004-05-08
  • 打赏
  • 举报
回复
如果我要接收非void类型的参数,是不是也可以呢?
compboy1 2004-05-08
  • 打赏
  • 举报
回复
我再不从一句, pio 是接收输入的参数, 它由在命令行输入的到。
代码没有错误, 我是原版拷贝过来的。
我想这里是不是跟void类型转换有关呀?
jp311 2004-05-07
  • 打赏
  • 举报
回复
void *类型指针可以指向任何类型对象
  • 打赏
  • 举报
回复
楼主,你大概写错了!

: jiangpeng(JP)

其它类型指针是void*指针,可以隐式转换;
void*指针不是其他类型指针,必须显式转换;

我说得对吗?
null2002 2004-05-07
  • 打赏
  • 举报
回复
是否是代码写错了?
这样看像是想把x转换成void类型。
brtjiba 2004-05-07
  • 打赏
  • 举报
回复
compboy1(程员)
哈哈!我也觉得像是脱了裤子放屁
congliu 2004-05-06
  • 打赏
  • 举报
回复
up
compboy1 2004-05-06
  • 打赏
  • 举报
回复
这么做算不算脱了裤子放p呀?
junnyfeng 2004-05-06
  • 打赏
  • 举报
回复
void * 可以转成任何指针类型,其他类型转void *是不行的吧
freefalcon 2004-05-06
  • 打赏
  • 举报
回复
对于
#define USE_VOID(x) (void *)x = (void *)x
int main()
{
int* p;
USE_VOID(p);
return 0;
}

我在VC下编译通不过,在Dev-Cpp下可以
其目的还是不太清楚
cngdzhang 2004-05-06
  • 打赏
  • 举报
回复
#define USE_VOID(x) (void *)x = (void *)x
改为
#define USE_VOID(x) *(void *)&x = (void *)x

就可以了
jp311 2004-05-06
  • 打赏
  • 举报
回复
我用GCC编译,即使是int *也不会报错呀。
USE_VOID只要传指针进去就是对地,没有问题呀,因为任何类型的指针都可以转换成void *呀
compboy1 2004-05-06
  • 打赏
  • 举报
回复
我好像明白了……!!
freefalcon 2004-05-06
  • 打赏
  • 举报
回复
这个写法有点意思
#define USE_VOID(x) (void *)x = (void *)x
如果说是强制转换的话,那=左边的写法就不正常
我做了下测试
void* p;
USE_VOID(p); 通过编译
int* p;
USE_VOID(p); //通不过编译
这么看,难道是为了判断一个变量是否是void*型的?
但它为什么用在函数最后呢,而且整个函数也没有用到pio

看其他朋友有没有别的看法
compboy1 2004-05-06
  • 打赏
  • 举报
回复
ll_printf(void * pio, char * format, ...)
{
va_list a;
char buf[256];
va_start(a,format);
vsprintf(buf,format,a);
va_end(a);
printf(linebuf);
USE_VOID(pio);/////////////////here????
return strlen(buf);
}
freefalcon 2004-05-06
  • 打赏
  • 举报
回复
不太清楚,你可以给出这个宏的使用代码吗

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧