c - 编译器警告:在赋值时将整数转换为指针
问题描述
我正在执行以下操作:
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
,而不是相反的转换,并且这种转换不会在分配时发生……有些事情您没有告诉我们。发布产生问题的可编译代码。
无论如何,演员表都没用,您可能应该改用它:
myNewValue = myReadValue | (3 << 8);
推荐阅读
- php - SWITCH 案例的 PHP 替代文本
- pdf - 为什么嵌入到 PDF 中的 JPEG 呈现与原始文件略有不同?
- javascript - TableRow Material-UI 之间的间距
- javascript - 无法将输入元素传递给函数以获取数据属性
- java - 从另一个活动返回后防止recyclerview重新加载
- ajax - 在 Laravel 中保护单个 API GET 请求
- javascript - onLoad 事件仅在加载实际图像时触发
- python - 为什么 unittest 不认为这两个列表是相等的?
- java - Java Fx 箭头按钮
- java - I was trying to search for the specific data from the text file by using the ID