2017-04-08 65 views
0

代碼時使用gcc編譯器,當我分配警告類型分配警告移植從xc32-GCC標準GCC

的功能很簡單

char* pShortToBuffer_Parse(char* DisBuff, short value) 
{ 
    *DisBuff++ = (char) (value >> 8); 
    *DisBuff++ = (char) value; 
    return DisBuff; 
} 

,我caling它像下面

short PacketSize = 0;char* PbufDst;  
PbufDst = pShortToBuffer_Parse(PbufDst, PacketSize); 

警告會消失,當我不回PbufDst的ADRESS

pShortToBuffer_Parse(PbufDst, PacketSize); 

不知道我很想念這裏,我有在使用微芯片xc32-gcc編譯器

任何想法傢伙另一謨沒有問題,也沒有警告這個工作同一段代碼?

+2

這聽起來像一個'pShortToBuffer_Parse'的聲明不在你調用它的地方(可能試着'gcc -Wimplicit'來確認?)。很難說清楚,因爲你的問題不包括[mcve]。 – melpomene

回答

0

編譯器嘗試翻譯的那一刻

PbufDst = pShortToBuffer_Parse(PbufDst, PacketSize); 

它似乎不知道pShortToBuffer_Parse()呢。在這種情況下,C標準定義爲假設int作爲返回值,導致試圖將這個非常分配給PbufDst這是char*

要解決此問題,請將pShortToBuffer_Parse()的聲明或定義放在前面。

+0

非常真實。謝謝 –