J'étais confus, quand ce ne serait pas compiler en C:
int main()
{
for (int i = 0; i < 4; ++i)
int a = 5; // A dependent statement may not be declaration
return 0;
}
Je suis habitué à C++ où cela va compiler. J'ai juste regardé stupéfait pendant un moment jusqu'à ce que je me suis souvenu de réponse ici sur DONC comment en C et C++ différentes choses sont considérées comme des "états". C'était à l'égard d'une instruction switch. Une "déclaration" après la boucle for les supports doivent être présents à la fois en C et C++. Cela peut être fait en ajoutant un point-virgule ou la création d'un { } enchevêtrées support de bloc.
En C++ "int a = 7;" est considérée comme une déclaration, définition et initialisation. En C je crois qu'il est également considéré comme l'ensemble de ceux-ci, cependant, en C, il n'est pas considéré comme une "déclaration".
Quelqu'un pourrait-il exactement expliquer pourquoi en C, ce n'est pas une déclaration alors qu'en C++ il est? Ceci est source de confusion mon concept de ce qu'est un énoncé n'est pas parce que l'on dit la langue, il est, et un autre dit que ce n'est pas le cas, donc je suis un peu confus.