我已經搜查的東西阿布這一點,但我還是不明白它..在C中使用extern有什麼問題?
file1.h
extern int *game_array[5];
Player.c
#include "file1.h"
void *delete_player(player_struct *player)
{
... //some code
game_array[5] = 5; //undefined reference to `game_array`
... //some code
}
當我不t使用extern它「工作很好」=我可以建立它與你的錯誤,但程序沒有完成.. 我想使用extern很好,但有些地方是錯誤的。 我想用這個game_array ...陣列的遊戲在服務器上我的.c源文件,在我的應用程序中只有一個這個數組的實例。
但是應該在哪裏定義?當我有更多的.c文件?只在其中一個? – user1097772 2012-02-06 18:15:14
@ user1097772:對於編譯器和鏈接器,只要該文件包含在構建中,則無論您在哪個文件中定義變量。通常,如果你在一個名爲'file1.h'的文件中有這樣的聲明,那麼你可以在名爲'file1.c'(同名,不同的擴展名)的文件中定義變量。 – NPE 2012-02-06 18:17:01
ok,所以file1.h => extern,file1.c定義(沒有extern),當我想在file2.c中使用它時,我只會將file1.h包含到file2.c中?我對嗎? – user1097772 2012-02-06 18:20:09