Suspicious pointer conversion при записи в структуру - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток всем и с праздником! Есть функция
Листинг программы
  1. void ReadPGM(unsigned char *data){ // Запись в программную память блока данных
  2. unsigned char counter=0;
  3. TBLPTRU=(ROM_START_ADRESS&0xFF0000)>>16; // address of the memory block
  4. TBLPTRH=(ROM_START_ADRESS&0x00FF00)>>8;
  5. TBLPTRL=(ROM_START_ADRESS&0x0000FF)+0x40;
  6. for(counter=0;counter<49;counter++)
  7. {
  8. _asm
  9. TBLRDPOSTINC // write to holding register and post-increment TBLPTR
  10. _endasm
  11. data[counter]=TABLAT;
  12. }
  13. }
. Есть структура, в которую мне нужно складывать значения, получаемые этой функцией.
Листинг программы
  1. typedef struct _settings {
  2. ADC_const zero; //16
  3. ADC_const span; //16
  4. DWORD capacity; //4
  5. DWORD offset; //4
  6. DWORD calbration_const; //4
  7. BYTE discrete; //1
  8. BYTE stability_factor; //1
  9. BYTE zero_factor; //1
  10. BYTE autozero_factor; //1
  11. BYTE frequency; //1
  12. }scale_settings; //49 bytes
  13. scale_settings cal; //переменная, в которую нужно писать данные
Вызываю функцию в main.c вот так:
Листинг программы
  1. ReadPGM((struct _settings*)&cal);
Всё отлично работает, только выдаётся предупреждение о подозрительной конвертации указателя
Листинг программы
  1. Warning [2054] suspicious pointer conversion
. Я понимаю, что по стандарту си такое приведение (unsigned char в struct) неверно, но наверняка есть способ решить проблему? Заранее спасибо за ответы.

Решение задачи: «Suspicious pointer conversion при записи в структуру»

textual
Листинг программы
  1. ReadPGM((unsigned char*)&cal);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы