EEPROM stroe 和 Initialization 从整数生成指针而无需强制转换

EEPROM stroe and Initialization makes pointer from integer without a cast

我收到警告:

Initialization makes pointer from integer without a cast

这是我的代码:

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

写EEPROM有:

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

我的问题在哪里。

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

问题出在代码的一部分,它在没有转换的情况下从整数创建指针。更改为 uint8_t* adr = (uint8_t*)12;

it is possible if I send union address into a function writeEEPROM?

是的,您可以写入任何类型的数据。但是,请注意 struct/union 填充和对齐。 EEPROM 的对齐要求与 RAM 变量不同是很常见的。