2013-07-13 74 views
-1

只是一些代碼。在一個文件和其頭:返回使得整型指針沒有強制轉換 - 但類型可以嗎?

// header: 
extern char * thessc_config_member_get_config_key(struct config_member_t *m); 

// implementation: 
inline char * thessc_config_member_get_config_key(struct config_member_t *m) { 
    return m->config_key; 
} 

// another file (.c) 
char *key; 
key    = thessc_config_member_get_config_key(*ary); 

[編輯]:所有必需的頭都包含[/編輯]

但是GCC與-fsyntax只告訴:

Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung [standardmäßig aktiviert] 
    key    = thessc_config_member_get_config_key(*ary); 

# English: return makes pointer from integer without a cast 

人向我解釋爲什麼發生這種情況?我試圖刪除externinline,但它也不起作用!

問候。

+1

我很迷惑什麼是錯誤的,包括頭文件和添加聲明在.C文件它將工作。刪除我的答案 –

+0

我也很困惑。我將我的'inline'd函數移動到頭文件,這是更好的(http://stackoverflow.com/questions/17504316/what-happens-with-a-extern-inline-function?noredirect=1)。但無論如何,上面的例子應該編譯,不是嗎? – musicmatze

+0

「config_key」的數據類型是什麼?它是一個角色還是角色數組? –

回答

0

*ary對我來說不對。你的意思可能是&ary作爲你的函數的參數。

+0

'ary'是類型'struct config_member_t **',所以不,我認爲我是對的! – musicmatze

+0

你沒有事先告訴我們,所以我不知道 –

相關問題