【发布时间】:2016-05-11 08:42:20
【问题描述】:
我不确定如何修复这段代码的警告(警告与第二行有关)。 这不是我的代码,但它确实工作得很好。但是,我想摆脱警告但很困惑。 v 是一个无符号长整数,我们希望将其放入指针中。我们正在使用 avr-gcc。
../../uJ/uj.c:1149:20:警告:从不兼容的指针类型初始化 const UInt8* d = &v;
static void ujThreadPrvPut32(UInt8* ptr, UInt32 v){ //to pointer
const UInt8* d = &v;
*ptr++ = *d++;
*ptr++ = *d++;
*ptr++ = *d++;
*ptr = *d;
}
【问题讨论】:
-
C 中的指针指向具体类型,即 d++ 跳过 1 个字节,v 参数为 4 个字节长。编译器无法理解你想要什么。以下是演员表的好答案