Перейти к содержанию
    

Почему не работает разложение Float на байты?

Делаю пока в компиляторе C-Free. Удобный и компактрый для таких дел. Ругается на строку

 

float &num = (float&)raw;

 

[Error] D:\8051\CFree\sprintf.c:9: error: syntax error before '&' token

 

Вот код:

 

unsigned char EEPROM[5];

// чтение
float EEPROM_float_read(int addr) {   
  unsigned char raw[4];
  unsigned char i;
  float num;
  for(i = 0; i < 4; i++) {raw[i] = EEPROM[i];}
  float &num = (float&)raw;
  return num;
}

// запись
void EEPROM_float_write(int addr, float num) {
  unsigned char raw[4];
  unsigned char i;
  (float&)raw = num;
  for(i = 0; i < 4; i++) EEPROM[i] = raw[i];
}


int main (void)
{    
  EEPROM_float_write(0, 1.2568);
  float a = EEPROM_float_read(0);

printf("%f", a);

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в С нет ссылок

 

В вашем случае верните так:

return *( (float *) raw);

 

Присвоение забыли разыменовать и не тот знак воткнули

*( (float *) raw) = num;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ругается на *((float&)raw) = num;.

 

[Error] D:\8051\CFree\sprintf.c:16: error: syntax error before '&' token
Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ругается на *((float&)raw) = num;.

Найдите десять отличий:

*( (float *) raw) = num;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зы. Да, отличия есть. Но вроде от сюда копировал...

 

Да, работает. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...