Предупреждение о преобразовании подозрительного указателя
Я компилирую свой код на 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)
вместо этого... Смотрите здесь для справки.
Спасибо за аннотации!!