首页 > 解决方案 > 编译器警告:在赋值时将整数转换为指针

问题描述

我正在执行以下操作:

static uint32 myReadValue;
static uint32 myNewValue;

DoRead(10, &myReadValue);

myNewValue = (uint32)(&myReadValue) | (3 << 8);

借此

void DoRead(SomeEnumType, void * Ptr)
{
    // some functionality
}

编译器给了我消息:

"conversion of integer to pointer at assignment" on the assignment of "myNewValue" 

我不知道我在那里做错了什么。任何的想法?

标签: cpointerscompiler-warnings

解决方案


(uint32)(&myReadValue) uint32指向 的指针的转换myReadValue,而不是相反的转换,并且这种转换不会在分配时发生……有些事情您没有告诉我们。发布产生问题的可编译代码。

无论如何,演员表都没用,您可能应该改用它:

myNewValue = myReadValue | (3 << 8);

推荐阅读