无符号Int到Void *然后返回

时间:2017-04-01 17:02:26

标签: c pointers

我有一个unsigned int,我使用32位中的每一位来存储特定的信息..

function( void * a);
unsigned int val = 0xFFFFFFFF;
function( (void *) (long) val );

在函数中,我想修改unsigned int ..我无法弄清楚如何在不丢失精度或任何位的情况下取消它。这是一个正确的方法来做到这一点......似乎无法弄明白......

1 个答案:

答案 0 :(得分:2)

你应该通过转换为void *来将val的地址传递给函数:

function((void*)&val);

设计你的功能,如:

void function(void* ptr) {
    unsigned int *p = (unsigned int*)ptr;
    (*p)++; //example of a change
}