我正在使用一个结构
typedef struct ObjectHandle
{
long *objHandle;
}ObjectHandle ;
输出是这个结构的值的函数
AllocateObject(ObjectHandle* objectHandle)
{
....
...
...
objectHandle->objHandle = some long value;
}
但是编译器发出警告:赋值使指针从整数而不进行强制转换
请帮忙
似乎您不是将值分配给值(内存),而是分配给指针(地址)
尝试这个:
*(objectHandle->objHandle) = some long value;
由于它是一个长指针,它应该具有长变量的地址。
objectHandle->objHandle = &(some long value);
您正在将一个长整数分配给一个指针(objHandle 是一个指向长整数的指针)。就像编译器说的那样。
这是有效的 c 但通常是一件相当愚蠢的事情,因为长整数是长整数,而不是指针。
在没有看到“一些长值”实际上指的是什么以及随后如何使用句柄的情况下,很难指出您是否应该转换值、获取它的地址、更改句柄的类型或其他什么别的。