我正在制作一个国际象棋引擎,我正试图存储几个8x8阵列用于电路板表示(例如白车阵列,其中0表示非车辆,1表示白车)
我的想法是让它成为全球性的,我永远不必在任何函数中传递它,我可以将它设置为全局并从中访问和运行,并且我对这些数组所做的任何更改都将针对所有函数进行更改。但是我在所有变量上都出现了重复的符号错误。以下是错误示例
duplicate symbol _whiteQueens in:
/Users/mkerian/Library/Developer/Xcode/DerivedData/chessGameST- ggkdsdjczjelcyftciubhwejdbma/Build/Intermediates.noindex/chessGameST.build/Debug/chessGameST.build/Objects-normal/x86_64/boardRep.o
如果有必要,这是我的申报代码。
int allChars[8][8];
int whiteChars[8][8];
int blackChars[8][8];
int whitePawns[8][8];
int blackPawns[8][8];
int whiteKnights[8][8];
int blackKnights[8][8];
int whiteBishops[8][8];
int blackBishops[8][8];
这似乎是构建时错误。如果你们对我能解决的问题有任何想法,我会很感激!
编辑:我做了一些改变,这已经改变了我的问题
在我的头文件中,我定义了像
这样的数组extern int allChars[8][8];
我为所有全局变量做了这个。我在这个程序中使用了~6 .c文件,看起来我的错误仅适用于每个变量中的一个。例如main不会为变量抛出错误,但其他一切都是。如何获取一个全局变量,然后能够将它用于我的所有.c?