VSはプリコンパイル済みヘッダーを使用するのが好きなので、どの仮定にも違反していないことを確認することをお勧めします。問題の原因の1つは、を含む行の前にヘッダーに名前を付けることstdafx.h
です。
プリコンパイル済みヘッダーの問題がない場合でも、ストックヘッダーの定義とうまく相互作用しないものを誤って定義している可能性があります。stdio.hの内部を見ると、同じファイルがいくつかの異なるプラットフォームに配布されているため、興味深い条件付きコンパイルセクションがいくつかあることがわかります。プロジェクトの設定を確認してください。問題が特定のソースファイルのコンパイル時にのみ発生する場合は、そのファイルのコンパイル設定も確認してください。
新しいプロジェクトを開始して、古き良きhello.cをコンパイルできるかどうかを確認することは確かに価値があります...
#include <stdio.h>
int main(int argc, char **argv) {
printf("hello, world.\n");
return 0;
}
そうでない場合は、VSのインストールに重大な問題があります。
他の可能性はあるがありそうもない問題の原因の1つは、他のコンパイラがインストールされていて、どういうわけか誤って別のコンパイラをstdio.h
完全に使用してVSを取得した場合です...不適切なINCLUDE環境変数がそれを引き起こす可能性がありましたが、それが原因かどうかはわかりません最近のバージョンでは。私はずっと前にそれによってやけどを負い、それ以来、個々のコンパイラにどの変数をグローバル環境に設定させるかについて、はるかに注意を払ってきました。