如何在函数内初始化全局结构?我的代码无法编译并出现以下错误:
expected expression before ‘{’ token
gameState = {0, *emptyBoard};`
^
以下是我的代码的相关部分:
typedef struct {
int turn;
char board [6][7];
} GameState;
GameState gameState;
int main(void) {
char emptyBoard[6][7];
gameState = {0, *emptyBoard};
return 0;
}
最佳答案
char emptyBoard[6][7];
不是空板;这是一个未初始化的字符板。要制作一个空板,请将 = { 0 };
放在声明的末尾 - 尽管如果您的目的只是清除 gameState
,则整行代码毫无意义。
gameState
已经零初始化,因为它是一个全局变量,因此您实际上不必在 main
中编写任何内容来重新初始化它。
如果您想稍后将其重置为零,您可以编写:
gameState = (GameState){0};
关于C 全局结构 : "error: expected expression before ' {' token",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079294/