Qu'est-ce que const struct
Comment ? Est-il différent de struct
?
Réponses
Trop de publicités?El const
s'applique en réalité à la variable, et non à 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
est constant, pas le struct
la définition même. Vous pourriez également écrire cela comme :
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 le struct
est constant, c'est-à-dire que vous ne pouvez pas modifier ses champs une fois qu'il a été initialisé.
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
EDITAR: GrahamS fait correctement remarquer que la constance est une propriété de la variable, dans ce cas-ci foo
et non la définition de la structure :
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
Le terme "const", comme l'indique le mot "constant", signifie "non modifiable". Cela peut être appliqué aux variables de n'importe quel type de données. struct étant un type de données défini par l'utilisateur, cela s'applique également aux variables de n'importe quel struct. Une fois initialisée, la valeur des variables constantes ne peut être modifiée.