2013-04-23 40 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