我正在編寫一個遊戲,現在我正試圖分解爲了組織而分成多個文件的一個文件。我遇到了一個問題,我不太清楚如何修復。最初,我有一個主要定義在這樣的地圖:將字符串數組定義從主文件移動到另一個文件
char const *map[]={
" ------------- ",
"|......|......|",
"|.............|",
"|......---.---|",
"|---.---...|..|",
"|..........|..|",
"|..........|..|",
"|.............|",
"|..........|..|",
" ------------- ",
};
這工作正常。現在我提出的聲明到一個名爲「map.h」文件:
extern const char *map[];
而且在一個文件中的實際定義所謂的「map.c」:
#include "map.h"
*map = {
" ------------- ",
"|......|......|",
"|.............|",
"|......---.---|",
"|---.---...|..|",
"|..........|..|",
"|..........|..|",
"|.............|",
"|..........|..|",
" ------------- ",
};
這給了我一個錯誤: 「衝突的類型圖」
以及衆多的警告:「從不相容的指針類型初始化[-Wincompatible指針類型]」 -------------「」
和:「標量中的過量元素初始化程序「後面的每一行。
如果我在map.c中的「map」中刪除了dereference操作符,那麼它給了我「初始化器元素在加載時不可計算」。 然後我想我可以通過在map.h中定義數組來解決這個問題,但是當然這會給我包含map.h中每個文件的多個定義的錯誤。
有沒有人知道一種方法實施這個/我做錯了什麼?
謝謝,尼克
聲明和定義ftw,在你的'map.c'中,修正你的'* map'聲明,這是不正確的。 – t0mm13b
使用im map.c const char * map = { –
@ t0mm13b您是否像其他人所說的那樣定義了定義?或者聲明中有錯誤? – Nic