un error curioso de estructura que se da en C, pero no en C++

r_cornet
06 de Agosto del 2003
el siguiente codigo enbebido dentro del main, con solamente incluido el stdio.h me da un error de parse
-------------------------------------------------
printf("Cualquier texto");
int varCualquiera;/* dandole un valor o no no importa*/
prinf("Cualquier texto2");
-------------------------------------------------

pero el mismo no me da error alguno en C++,
los compiladores que usè fueron gcc 2.95 para Linux y para Windows, ademàs del Borland C++ 5.5 para windows. Todos me dan el mismo error conpilandolo como programa C, pero como programa C++ no pasa nada y ejecuta perfectamente.

¿alguien sabe si por què es esto?

Desde ya, gracias.

chuidiang
06 de Agosto del 2003
En C debes declarar las variables antes del código, o bien dentro de un bloque de llaves. En C++ puedes declararlas en cualquier lado.

Esto sería válido en cualquier de los dos lenguajes

printf ("texto");
{
int variable;
printf ("texto");
}

printf ("Aqui ya no existe variable");

Sin embargo, variable sólo es válida dentro del bloque de llaves.

Se bueno.