Ich habe gerade angefangen Visual Studio zu verwenden (ich habe VS 2012 von dreamspark, und es ist nicht mehr lange her, seit ich wieder Windows benutze) und ich ' Ich habe Probleme.Visual Studio "illegale Verwendung dieses Typs als Ausdruck"
Ich habe eine einzelne Datei mit dem Namen „main.c“ unter meinen Quelldateien Ordner, der wie folgt aussieht:
#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;
}
Und wenn ich versuche, es gibt mir die folgenden Fehlermeldungen zu erstellen:
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
Die lustige Sache ist, dass es gut baut, wenn ich die scanf
Linie auskommentieren.
Ich habe ein "leeres Projekt" unter den "Visual C++" Optionen erstellt, so dass ich nicht sicher war, ob VS es als C oder C++ - Programm kompiliert. Ich hatte jedoch den Eindruck, dass mein Code C/C++ agnostisch genug war, dass er in C oder C++ kompilieren sollte.
Was kann ich tun, um dies zu erstellen, während die Semantik des Programms beibehalten wird?
Alter für mich ... aber muss der Typdef der Struktur folgen, auf die er verweist? –
Sieht so aus, als ob es versucht, es als c zu kompilieren, nicht als C++. – ryanbwork