const struct déclaration

Quelqu'un peut me dire la différence entre ces deux versions d'une déclaration d'une structure?

struct S
{
  uint8_t a;
};

et

const struct S
{
  uint8_t a;
}

Suivie par:

void main(void)
{
  struct S s = {1};
  s.a++;
}

Astuce, j'ai essayé les deux versions pour S dans Visual Studio C++ 2010 Express donc je sais que les deux compiler avec des erreurs.

Est le "const struct" ne rien faire du tout? "const struct S S = {1};" certainement, mais ce n'est pas la question pour le moment.

Ce qui concerne
Riche

/********************************************/

J'ai juste travaillé ce

const struct <typename> <{type}> <variable instances a, b, .., z>;

est en train de faire:

Quand const est présent avant la "struct", toutes les variables d'instances sont const, comme si elles avaient être défini avec:

const struct <typename> a, b, z;

Afin de ne faire quelque chose, mais pas quand il n'y a pas d'instance de définitions en ligne avec la structure de la déclaration.

Riche

Il manque un point-virgule à la fin de la seconde, ce qui signifie que vous avez spécifié deux types différents dans l'endroit où le type de retour de main appartient. Aucun de ces types est ce qu'il devrait être,int. Je ne me souviens pas si oui ou non vous êtes autorisé à définir un type dans une définition de fonction (et de toute façon ce n'est pas tout à fait clair dans quelle langue vous êtes à la compilation de ce code), qui pourrait être une erreur supplémentaire.
Autre que void main(), ce que d'autres problèmes sont là @KerrekSB
Désolé pour le C++, j'ai supprimé mon commentaire. @Riche: il Vous manque un point-virgule dans le deuxième extrait, et void main(void) n'est pas autorisé.
Est-il possible que vous pourriez nous montrer le code que vous travaillez avec. Le manque semi-colon me fait penser il y a peut être d'autres questions.
L'absence d'un point-virgule est cus j'ai tapé dans la main libre. Ce n'est pas la question ici. @SteveJessop son PHP (sarc)

OriginalL'auteur RichColours | 2011-10-04