C2143のエラー

Linux上でコンパイルが通っているはずのCのソースをVisual C++ 2005でコンパイルしようとすると下記エラーが発生してコンパイルできない。

error C2143: 構文エラー : ‘;’ が ‘型’ の前にありません。

具体的にはこんな感じのコードです。

  int max;
  max = 10;
  for (int i = 0; i < max ; i++){
    // error C2143
    printf("Test First!\n");
  }

また例によって例の如くエラーメッセージが意味不明なんですが、プロジェクトの設定で、[C++ コードとしてコンパイル (/TP)]とするか、下記のように書き換えればOKになります。

  int max;
  int i;    // iの宣言を移動
  max = 10;
  for (i = 0; i < max ; i++){
    // OK!
    printf("Test First!\n");
  }

そうです。
何だかもう忘れてましたが、Cでは宣言の前に何らからの処理コードが入ってたらいけないんですね。