如何在函数内初始化全局结构?我的代码无法编译,并出现以下错误:

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 - C Global Struct:“错误:'{' token 之前的预期表达式”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28079294/

10-12 23:58