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);