Visual Studio を使い始めたばかりで (dreamspark から VS 2012 を入手しましたが、Windows を再び使い始めてからしばらく経ちません)、問題が発生しています。
ソースファイルフォルダーの下に、次のような「main.c」という名前の単一のファイルがあります。
#include <stdio.h>
typedef struct S_s S;
struct S_s {
void* x;
};
int main(int argc, char** argv)
{
int N;
scanf("%d", &N);
S* s;
printf("%p", s);
return 0;
}
ビルドしようとすると、次のエラーメッセージが表示されます。
Error 3 error C2065: 's' : undeclared identifier c:\users\math4tots\documents\visual studio 2012\projects\algorithms\lecture1\main.c 13 1 Lecture1
Error 4 error C2065: 's' : undeclared identifier c:\users\math4tots\documents\visual studio 2012\projects\algorithms\lecture1\main.c 14 1 Lecture1
Error 2 error C2275: 'S' : illegal use of this type as an expression c:\users\math4tots\documents\visual studio 2012\projects\algorithms\lecture1\main.c 13 1 Lecture1
面白いことに、この行をコメントアウトすると問題なくビルドできますscanf
。
「Visual C++」オプションで「空のプロジェクト」を作成したため、VSがそれをCまたはC++プログラムとしてコンパイルしたかどうかわかりませんでした。ただし、私のコードは C/C++ に依存しないので、C または C++ でコンパイルする必要があるという印象を受けました。
プログラムのセマンティクスを維持しながらこれをビルドするにはどうすればよいですか?