avr-gcc warning: initialization from incompatible pointer type
我不确定如何修复这段代码的警告(警告与第二行有关)。这不是我的代码,但它工作得很好。但是,我想摆脱这个警告,但是我很困惑。V是一个不带符号的长型,我们想把它放到指针上。我们正在与AVR GCC合作。
../../uJ/uj.c:1149:20: warning: initialization from incompatible pointer type
const UInt8* d = &v;
1 2 3 4 5 6 7 8 | static void ujThreadPrvPut32(UInt8* ptr, UInt32 v){ //to pointer const UInt8* d = &v; *ptr++ = *d++; *ptr++ = *d++; *ptr++ = *d++; *ptr = *d; } |
给铸造: P / < >
1 | const UInt8* d = (const UInt8*)&v; |
一个此外到其他答案: P / < >
它会更好的实践到供应的
1 | static void ujThreadPrvPut32(UInt8* const ptr, UInt32 v); |
由于
在另一方面,你可以只使用memcpy()。 P / < >
1 2 3 4 | uint8_t* ptr = 0; // has to be set to desired target address obviously uint32_t value = 123; memcpy(ptr, &value, sizeof(value)); |