1

私は 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 の新規インストールを使用しています。

4

1 に答える 1