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