只是一些代碼。在一個文件和其頭:返回使得整型指針沒有強制轉換 - 但類型可以嗎?
// 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
能
人向我解釋爲什麼發生這種情況?我試圖刪除extern
和inline
,但它也不起作用!
問候。
我很迷惑什麼是錯誤的,包括頭文件和添加聲明在.C文件它將工作。刪除我的答案 –
我也很困惑。我將我的'inline'd函數移動到頭文件,這是更好的(http://stackoverflow.com/questions/17504316/what-happens-with-a-extern-inline-function?noredirect=1)。但無論如何,上面的例子應該編譯,不是嗎? – musicmatze
「config_key」的數據類型是什麼?它是一個角色還是角色數組? –