Codeblock中编译器的错误:抱歉,未实现:不支持非平凡的指定初始值设定项(学习C方式很难ex19)

时间:2015-02-25 14:14:22

标签: c

我正在学习:艰难地学习C(ex19) http://c.learncodethehardway.org/book/ex19.html 在“游戏实现”部分中有这段代码:

Object MonsterProto = {
.init = Monster_init,
.attack = Monster_attack
};

编译时,它说:抱歉,未实现:不支持非平凡的指定初始值设定项

1 个答案:

答案 0 :(得分:3)

指定的初始化程序意味着使用成员的变量名称来初始化结构,例如.init = Monster_init。您的书应该提到此功能仅适用于C99标准或更新版本。如果它没有,你需要一本更好的书。

您需要正确编译代码。告诉它使用更新版本的C标准,而不是25年前的版本。在gcc编译器中,这由gcc -std=c99 -pedantic-errorsgcc -std=c11 -pedantic-errors完成(如果您的编译器支持C11,则首选)。