Предупреждение о преобразовании подозрительного указателя

Я компилирую свой код на C с помощью компилятора Microchip C18. Я получаю предупреждение [2054] suspicious pointer conversion в этом коде:

unsigned char ENC_MAADR1 = 0x65;
unsigned char ENC_ReadRegister(unsigned char address);
// ...
puts(ENC_ReadRegister(ENC_MAADR1)); // <-- warning on this line

Что означает это предупреждение и как я могу его решить?

1 ответ

Решение

puts требует const char*Вы доставляете unsigned charдаже не указатель.

Отсюда:

#include <stdio.h> 

int puts(const char *s); 

puts() Функция записывает строку, на которую указывает s к стандартному потоку вывода stdout и добавляет символ новой строки к выводу. Завершающий нулевой символ строки не записывается.

использование putc(int c, FILE* stream) вместо этого... Смотрите здесь для справки.

Спасибо за аннотации!!

Другие вопросы по тегам