私は C++ の素晴らしい経験を持っており、現在純粋な C でいくつかのことをしようとしています。しかし、私は本当に奇妙な事実に気付きました。
次のコード:
#include <stdio.h>
int main()
{
double a;
scanf_s("%lf", &a);
double b;
b = a + 1;
printf("%lf", b);
return 0;
}
sourceLair では問題なくコンパイルできますが (gcc コンパイラを使用)、Microsoft Visual Studio (Visual C++ を使用) では次のエラーが発生します。
1>Task 1.c(8): error C2143: syntax error : missing ';' before 'type'
1>Task 1.c(9): error C2065: b: undeclared identifier
1>Task 1.c(9): warning C4244: =: conversion from 'double' to 'int', possible loss of data
1>Task 1.c(11): error C2065: b: undeclared identifier
コードを少し試してみたところ、関数を呼び出す前に変数宣言を配置しても問題ありませんが、その後に宣言を配置するとコンパイル エラーが発生することがわかりました。
では、何が問題なのですか?設定を変更せずに、Microsoft Visual Studio 2012 Express の新規インストールを使用しています。