编译器警告:赋值时将整数转换为指针
Compiler warning: Conversion of integer to pointer at assignment
我正在执行以下操作:
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"
我不明白我做错了什么。
有什么想法吗?
(uint32)(&myReadValue)
是 到 uint32
的指针到 myReadValue
的转换,而不是相反,这种转换不会发生正在分配...有些事情您没有告诉我们。 Post 产生问题的可编译代码。
演员阵容无论如何都没用,你可能应该改用这个:
myNewValue = myReadValue | (3 << 8);
我正在执行以下操作:
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"
我不明白我做错了什么。 有什么想法吗?
(uint32)(&myReadValue)
是 到 uint32
的指针到 myReadValue
的转换,而不是相反,这种转换不会发生正在分配...有些事情您没有告诉我们。 Post 产生问题的可编译代码。
演员阵容无论如何都没用,你可能应该改用这个:
myNewValue = myReadValue | (3 << 8);