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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д