我一直在試圖關注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