0

我收到警告:

初始化使指针从整数而不进行强制转换

这是我的代码:

case 4:
{
    uint8_t* adr = 12;
    writeEEPROM((uint8_t *) adr, &z, sizeof(z));
}

writeEEPROM 有:

void writeEEPROM( uint8_t* eeAddress, uint8_t* buffAddress, uint32_t byteCount ){....

我的问题在哪里。

也许是问题 2:如果我将联合地址发送到函数 writeEEPROM 中是否有可能?

4

1 回答 1

1

问题是代码的一部分,它在没有强制转换的情况下从整数生成指针。改成uint8_t* adr = (uint8_t*)12;

如果我将联合地址发送到函数 writeEEPROM 有可能吗?

是的,您可以编写任何类型的数据。但是,请注意结构/联合填充和对齐。EEPROM 与 RAM 变量具有不同的对齐要求是很常见的。

于 2015-08-13T07:56:48.607 回答