void write_int16_eeprom(INT_EEPROM_ADDRESS address, int16 data)
{
int8 i;
for(i = 0; i < 2; ++i)
{
write_eeprom(address + i, *((int8 *)(&data) + i));
}
}
(int8 *)(&data) + i)y=((int8 *)(&data) + i) y entre parentesis esta siendo declarado como puntero *(y). También se que data fue declarado antes (en el inicio de la función) como un int16 y el registro donde se almacenará la dirección data esta declarado implicitamente por el (int8 *) dentro del parentesis. Entonces sacando cuentas (si esta malo no importa, vendria a ser carril mío jaja pero deseo me corrijan) sería lo mismo decir?:int16 data;
int8 *y;
int8 i;
for(i = 0; i < 2; ++i)
{
y=(&data)+i;
write_eeprom(address + i, *y);
}