52 votes

Quelle est la différence entre un "const struct" et un "struct" ?

Qu'est-ce que const struct Comment ? Est-il différent de struct ?

91voto

GrahamS Points 3315

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

24voto

Andreas Brinck Points 23806

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

0voto

Nick Points 9187

Je crois qu'une structure constante ne peut pas être modifiée. En d'autres termes, tous les champs d'une structure qui est déclarée const sont non-modifiables.

0voto

Sudantha Points 2907

Cela signifie que vous ne peut pas modifier le champ de la structure après la déclaration et l'initialisation et vous puede récupérer les données de la structure

0voto

Jay Points 8393

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X