2013-04-23 38 views
2

我正在使用Microchip的C18编译器编译我的C代码。我在此代码得到一个警告[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 

是什么警告意味着,我该如何解决呢?

回答

8

puts要求const char*,您正在交付unsigned char,甚至没有指针。

here

#include <stdio.h> 

int puts(const char *s); 

puts()函数写入字符串指向s到标准输出流stdout和附加一个新行字符到所述输出。字符串的终止空字符不写入。

改为使用putc(int c, FILE* stream) ... 请参阅here以供参考。

谢谢你的注释!

+0

那么正确的代码是什么样的?我的指点知识不好。 – Keelan 2013-04-23 09:17:05

+3

@CamilStaps请参阅['fputc'](http://en.cppreference.com/w/c/io/fputc)。 – 2013-04-23 09:18:15

+0

@JoachimPileborg谢谢,那就是诀窍! – Keelan 2013-04-23 09:19:44