GNUARMコンパイラでコンパイルするコードがありますが、VisualStudio2010でエラーが発生します。この問題には、C言語ファイルの最初のステートメントの後に変数を宣言することが含まれます。
main.c
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 6;
i = i + 1;
printf("Value of i is: %d\n", i);
int j = i * 10; // <-- This is what Visual Studio 2010 complains about.
printf("Value of j is: %d\n", j);
return EXIT_SUCCESS;
}
次のコードはエラーなしでコンパイルされます。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 6;
int j; // <-- Declaration is now here, valid according to K&R rules.
i = i + 1;
printf("Value of i is: %d\n", i);
j = i * 10; // <-- Moved declaration of j to above.
printf("Value of j is: %d\n", j);
return EXIT_SUCCESS;
}
Win32コンソールプロジェクトの作成にデフォルト設定を使用しています。「Compileas」プロパティを「CompileasC++(/ TP)」に設定すると、一部のVisualStudioヘッダーファイルでコンパイルエラーが発生します。(プロジェクトを右クリックし、[プロパティ] → [構成プロパティ] → [ C / C ++ ] → [詳細設定]を選択します)。
Visual Studio 2010に、C ++や現在のC言語標準など、最初のステートメントの後に変数宣言を許可するように指示するにはどうすればよいですか?