[C] Quand utiliser les structures ?
|
07-06-2014, 15h31
Message : #1
|
|
Ekroz
Membre actif Messages : 77 Sujets : 13 Points: 43 Inscription : May 2013 |
[C] Quand utiliser les structures ?
Bonjour à toutes et à tous,
Voilà hier soir une question m'a un petit peu taraudé : quand utiliser les structures ? Certains en abusent follement au point d'en mettre partout où il faut transmettre plus d'un paramètre à une fonction, d'autres y vont un peu au feeling, et d'autres suivent certaines normes propres à leur façon de coder. Mais voilà, comme toute feature d'un langage de programmation, ce n'est jamais là par hasard, il y a des cas où c'est totalement inutile, d'autres indispensables. En parcourant un peu notre ami Google, j'ai pu trouver beaucoup de sujets. Notamment Microsoft qui préconise en C# d'utiliser les structures lorsque je cite : Citation :Do not define a structure unless the type has all of the following characteristics: Mais voilà il s'agit du C#, et de l'usage des strucutres à la place des classes. Je n'ai pas la chance de posséder la bible du C de Dennis Ritchie sinon j'aurai feuilleté le chapitre le concernant, donc je vous pose la question, comment vous a-t-on appris à utiliser les structures ? Ekroz. |
|
07-06-2014, 15h52
Message : #2
|
|
Junky
Snorky Master Messages : 228 Sujets : 35 Points: 204 Inscription : Mar 2013 |
RE: [C] Quand utiliser les structures ?
Pour le coup j'ai appris tt seul et je suis loin de les gérer. Surtout les listes chainés par exemple . Souvent je ne les utilise pas et je passe par des fonction a WattMilles paramètres.
Ca reste un côté assez obscure, même si il faut avouer que c'est qd même vachement pratique. J'avais fait à l'époque un topic sur les threads, qui employé une structure afin de pouvoir passer plusieurs paramètres a un thread car il me semble que pour ce cas, tu es obligé de passer par les structures. Après je n'ai pas un grand lvl en C, et souvent mes codes n'en ont pas besoins, mais je serai aussi ravi que toi d'avoir des conseils avisés de nos Barbus préférés... Junky Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier
|
|
07-06-2014, 15h58
Message : #3
|
|
fr0g
NTEuNDI2MzcsLTEuNzc4NDg4 Messages : 348 Sujets : 22 Points: 56 Inscription : Aug 2011 |
RE: [C] Quand utiliser les structures ?
Je ne fais trop de C#, mais personnellement en C, comme tu l'as précisé , je les utilises premièrement pour des raisons de contraintes (norme: en particulier, fonctions limités à 4 params).
autrement, eh bien pour les arbres, listes chainées (n'ayant pas les conteneur genre listes ou vectors du C++) Sinon, le dernier cas ou je les utilise le plus est bien pour la clarté du code, et le coté pratique, je trouverai toujours ça préférable de transmettre, par exemple plusieurs données ayant un lien entre elles ( Genre: nom de fichier, taille, location, type, etc...) ) travers une structure dont je passerai le pointeur à mes fonctions, au lieu de me trimballer un sac de variables à travers tout le programme. |
|
07-06-2014, 16h10
Message : #4
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,613 Sujets : 72 Points: 466 Inscription : Jan 2012 |
RE: [C] Quand utiliser les structures ?
Je rejoins ce qui se dit plus haut, ça sert pas mal pour les structures de données "complexes" (i.e listes, arbres, graphes, représentation de coordonnées/structures mathématiques ou autres), pour la lisibilité du code, mais aussi pour "fabriquer" des formats de fichier (par exemple, PE/ELF et compagnie c'est des tas de structures plus ou moins documentées).
Ça pourrait aussi éventuellement servir pour "simuler" de la POO (d'ailleurs les objets qu'on manipule C++ ne sont qu'une structure contenant les variables membres de la structure, et dont le premier champs un un pointeur vers une "vtable" (i.e une table de pointeurs de fonctions, pour pouvoir faire des fonctions virtuelles et tout ce qui en découle) . Sinon pour apprendre à utiliser les structures le mieux c'est encore de lire et écrire du code, bouffer de la structure
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
07-06-2014, 19h29
Message : #5
|
|
Geluchat
Ethical Hacker Messages : 13 Sujets : 3 Points: 10 Inscription : May 2014 |
RE: [C] Quand utiliser les structures ?
Personnellement, en C, je les utilise principalement pour les threads, comme on peut passer qu'un seul parametre
|
|
09-06-2014, 18h32
Message : #6
|
|
ark
Psyckomodo! Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
RE: [C] Quand utiliser les structures ?
Je réponds en speed, a mon sens, c'est totalement indispensable dans le cas d'utilisation de pointeurs sur fonctions génériques qui prennent en paramètre de type void *; et également dans le cas de structures de données, comme des listes chainées, graphes ou autre.
Ensuite, personnellement, je m'en sert aussi un peu pour organiser mon code, le rendre plus lisible, mais cela va généralement de pair avec des listes chainées. :p |
|
25-08-2015, 22h52
(Modification du message : 25-08-2015, 22h56 par Commodor.)
Message : #7
|
|
Commodor
Ho ! Dodgson ! Messages : 64 Sujets : 9 Points: 36 Inscription : Nov 2011 |
RE: [C] Quand utiliser les structures ?
Pour remonter un peu le topic, je dirais même qu'elles sont omniprésentes lorsqu'un programme commence à prendre de l'envergure (>2000 lignes). Comme cité ci-dessus, des listes, pointeurs sur fonctions, threads, réduire le nombre de paramètres pour les fonctions, etc.
Mais comme son nom l'indique, une structure sert principalement à "structurer" (sérieux ) des données (qui sont plus ou moins liées selon l'utilisation que l'on en a). Pour une application système, on pourrait très bien s'en servir pour gérer les utilisateurs : Code : struct sys_user { Autre cas d'utilisation très pratique : les applications réseaux. Très utile pour sérialiser des données sans se prendre la tête : Code : union frame {
Hahaha you didn't say the magic word !
|
|
26-08-2015, 18h11
Message : #8
|
|
balis
Hack Compagnie by Eballys Messages : 156 Sujets : 3 Points: 16 Inscription : Dec 2012 |
RE: [C] Quand utiliser les structures ?
Bref les structures c'est la vie.Le truc c'est de les utiliser pour regrouper des informations. Après seule ton expérience perso te guidera sur oui ou non , je dois les utiliser.
Sur le net , les poules ont des dents. Bali .
Soit original soit celui qui sort de l'ordinaire soit toi . Bali . C: ok bash : ok asm : en cours. HTML/CSS : ok , PHP/MySQL : en cours. |
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)