int存放到void指针

参考博客:http://blog.chinaunix.net/uid-20548989-id-1667467.html

中断处理函数,需要把一个值存在 void * 中传给回调函数,然后在回调函数内部把 int 值从 void * 中取出。
把一个 int 存到 void * 变量需要先把它转换成 long, 这样能避免:warning: cast to pointer from integer of different size;

方法如下:

int irq;
void *arg;
arg = (void *)(long)irq;

同样,从 void * 取出 int, 需要这样:

int fd = (int) (long)arg;
posted @ 2024-03-19 11:06  lethe1203  阅读(22)  评论(0编辑  收藏  举报