523 votes

Comment initialiser un struct en C ANSI

Je veux initialiser un élément struct, split dans la déclaration et l’initialisation. C’est ce que j’ai :

C’est la façon de déclarer et initialiser une variable locale du `` en C ANSI (C89, C90, C99, C11, etc..) ? Ou y a-t-il quelque chose de mieux ou du moins de travail ?

Mise à jour J’ai fini par avoir un élément de l’initialisation statique où j’ai mis chaque sous-élément selon mes besoins.

818voto

philant Points 17345

Dans C99 (ANSI), vous pouvez utiliser un désigné initialiseur pour initialiser une structure :

225voto

CesarB Points 18048

Vous pouvez le faire avec un composé littérale. Selon cette page, il travaille en C99 (qui compte également comme ANSI C).

Les désignations dans les initialiseurs sont facultatifs ; vous pouvez également écrire :

104voto

Ron Nuni Points 188

Je vois que vous avez déjà reçu une réponse concernant les ANSI C 99, donc je vais jeter un OS sur 89 C ANSI. ANSI C 89 vous permet d’initialiser une structure de cette façon :

Une chose importante à retenir, pour le moment vous initialisez un objet / variable struct, toutes ses autres variables seront initialisé à la valeur par défaut.

Si vous ne pas initialiser les valeurs dans votre structure, toutes les variables contient des valeurs « ordures ».

Bonne chance !

46voto

qrdl Points 17813

a = (MYTYPE){ true, 15, 0.123 };

ferait bien dans C99

24voto

Kieveli Points 7162

Vous l'avez presque ...

 MY_TYPE a = { true,15,0.123 };
 

Une recherche rapide sur 'struct initialize c' me montre ceci

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