私はドンときPlayer.cCのようにexternを使用すると何が問題になりますか?
は」#include "file1.h"
void *delete_player(player_struct *player)
{
... //some code
game_array[5] = 5; //undefined reference to `game_array`
... //some code
}
file1.h
extern int *game_array[5];
..私はすでにこのアボ何かを検索したが、私はまだそれを理解していないしました私はそれを構築することはできませんが、プログラムは終了していません。 私はexternを使用しているとは思えますが、何かが間違っています.. 私はこのgame_arrayを使用したい...ゲームの配列サーバーから私の.cソースファイルは、私のアプリケーションにはこの配列のインスタンスが1つしかありません。
しかし、どこを定義する必要がありますか?より多くの.cファイルがある場合そのうちの1人だけ? – user1097772
@ user1097772:コンパイラとリンカにとって、ファイルがビルドに含まれている限り、変数を定義するファイルには関係ありません。従来、 'file1.h'というファイルに次のような宣言がある場合、変数を' file1.c'というファイル(同じ名前、別の拡張子)で定義します。 – NPE
okだから、file1.h => extern、file1.cの定義(externなし)、file2.cで使用したいときは、file2.hにfile1.hをインクルードしますか?私は正しい? – user1097772