我一直在试图关注Zed Shaw的“Learn C the Hard Way”在线课程。我在使用Visual Studio 2010中的c编译器编译ex17时遇到了一个问题。我总是从代码的第100行左右得到一个错误。但是,当我尝试使用Ubuntu虚拟机编译完全相同的文件时,代码编译得很好。以下代码在编译器在“。”处生成错误的“{.id”处生成错误。有人可以解释为什么这个错误发生在一个编译器而不是另一个?由于它发生在Windows环境中,未来如何避免?visual studio 2010 C和Ubuntu C的结构声明区别C
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命令提示符中出现。
感谢您的答案!你摇滚! – user2073935 2013-02-15 01:30:10