C Global Struct:"错误:在' {'之前的预期表达式令牌"

时间:2015-01-22 00:14:29

标签: c struct

如何在函数中初始化全局结构?我的代码没有编译并咳出以下错误:

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;
}

1 个答案:

答案 0 :(得分:2)

char emptyBoard[6][7];不是空板;它是一个未初始化角色的董事会。要制作一个空白的董事会,请在声明的最后添加= { 0 }; - 尽管如果你的目的只是为了清除gameState,这一行毫无意义。

gameState已经零初始化,因为它是一个全局变量,因此您实际上不必在main中编写任何内容来重新初始化它。

如果你想稍后将其重置为零,你可以写:

gameState = (GameState){0};