系统编程使用回调函数的时候,经常需要把一个值存在 void * 中传给回调函数,然后在回调函数内部把 int 值从 void * 中取出。
把一个 int 存到 void * 变量需要先把它转换成 long, 这样能避免 warning: cast to pointer from integer of different size
int sockfd;
void *arg;
arg = (void *)(long)sockfd;
同样,从 void * 取出 int, 需要这样:
int fd = (int) (long)arg;
阅读(1053) | 评论(0) | 转发(0) |