Acabo de empezar a usar Visual Studio (obtuve VS 2012 de dreamspark, y no ha pasado mucho tiempo desde que comencé a usar Windows de nuevo) y yo ' Estoy teniendo problemas.Visual Studio "uso ilegal de este tipo como expresión"
que tienen un único archivo llamado "main.c" bajo mi carpeta de archivos de origen que tiene este aspecto:
#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;
}
Y cuando trato de instalar me da los siguientes mensajes de error:
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
Lo curioso es que se compila muy bien si hago un comentario sobre la línea scanf
.
Creé un "proyecto vacío" en las opciones de "Visual C++", por lo que no estaba seguro de si VS lo compiló como un programa C o C++. Sin embargo, tenía la impresión de que mi código era C/C++ lo suficientemente agnóstico como para compilarlo en C o C++.
¿Qué puedo hacer para que esto se consiga mientras se mantiene la semántica del programa?
He cumplido años para mí ... pero, ¿el tipo debe seguir la estructura a la que hace referencia? –
Parece que intenta compilarlo como c, no como C++. – ryanbwork