2013-03-29 28 views
1
void format_SaNameT(const char* const name, SaNameT* formatted) 
{ 
    if(! name || ! formatted) return; 

    memset(formatted, 0, sizeof(SaNameT)); 
    formatted->length = strlen(name); 
    strncpy(formatted->value, name, SA_MAX_NAME_LENGTH); 
} 

這裏「format_SaNameT」顯示的是警告警告:沒有以前的原型「format_SaNameT」

回答

1

所以編譯器知道它正在處理你應該提供的頭文件的原型......

聲明void format_SaNameT(const char* const, SaNameT*);在一個不同的.h文件或您的主文件中,警告將消失。

+0

老兄我有514行的代碼。我可以在這裏發佈嗎?所以我的許多警告將會消失。 – Mitra

+0

寧可爲pastebin提供一個鏈接... –

+0

他給了你一個非常乾淨的答案。你應該能夠弄明白,再加上它在C編程的任何正派教科書中都有涉及。 –

0

在某些函數中,您在哪個範圍調用format_SaNameT,編譯器不知道以前的聲明是否相同,因此您正在觀察警告。

要解決此警告,請確保文件中有可用的函數聲明,可以通過同一文件中的簡單聲明或通過頭文件調用此函數。