Que signifie const struct
? Est-ce différent de struct
?
La partie const
s'applique réellement à la variable, pas à la structure elle-même.
par exemple. @Andreas dit correctement:
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
Mais l’important est que la variable foo
soit constante et non la définition struct
elle-même. Vous pouvez également écrire cela comme suit:
struct apoint {
int x;
int y;
};
const struct apoint foo = {10, 20};
foo.x = 5; // Error
struct apoint bar = {10, 20};
bar.x = 5; // Okay
Cela signifie que la struct
est constante, c'est-à-dire que vous ne pouvez pas modifier ses champs après son initialisation.
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
EDIT: GrahamS souligne correctement que la constness est une propriété de la variable, dans ce cas foo
, et non la définition de struct:
struct Foo {
int x;
int y;
};
const struct Foo foo = {10, 20};
foo.x = 5; //Error
struct Foo baz = {10, 20};
baz.x = 5; //Ok
Je crois qu'une const structure ne peut pas être modifiée. En d'autres termes, tous les champs d'une structure déclarée const sont non modifiables.
Const signifie que vous ne pouvez pas éditer le champ de la structure après la déclaration et l'initialisation et que vous pouvez récupérer les données de la structure
'const' comme la constante du mot l'indique elle-même signifie non modifiable. Ceci peut être appliqué à une variable de n'importe quel type de données. struct étant un type de données défini par l'utilisateur, il s'applique également aux variables de toute struct. Une fois initialisée, la valeur des variables const ne peut plus être modifiée.