私はZedShawの「LearnCtheHardWay」オンラインコースをフォローしようとしています。Visual Studio 2010でcコンパイラを使用してex17をコンパイルしようとすると、問題が発生しました。コードの100行目あたりから常にエラーが発生します。ただし、Ubuntu仮想マシンを使用しているときにまったく同じファイルをコンパイルしようとすると、コードは正常にコンパイルされます。エラーは、コンパイラが「。」でエラーを生成する「{.id」で次のコードで生成されます。このエラーが1つのコンパイラで発生し、別のコンパイラでは発生しない理由を誰かが説明できますか?これは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コンパイラスイッチがアクティブ化されているかどうかに関係なく、VisualStudioのコマンドプロンプトで発生します。