我一直在努力学习 Zed Shaw 的“Learn C the Hard Way”在线课程。我在尝试使用 Visual Studio 2010 中的 c 编译器编译 ex17 时遇到了一个问题。我总是从代码的第 100 行左右得到一个错误。但是,当我尝试在使用 Ubuntu 虚拟机时编译完全相同的文件时,代码编译得很好。错误在以下代码中的“{.id”处生成,其中编译器在“.”处生成错误。有人可以解释为什么这个错误发生在一个编译器而不是另一个编译器中吗?既然发生在windows环境下,以后怎么避免呢?
void Database_create(struct Connection *conn)
{
int i = 0;
for( i = 0; i < MAX_ROWS; i++) {
// Make Prototype to initialize
struct Address addr = {.id = i, .set = 0}; //Syntax error generated here
// then assign it
conn->db->rows[i] = addr;
}
}
注意:无论是否激活了 C 编译器开关,这都会在 Visual Studio 命令提示符下发生。