Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1925 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Design en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Design en C

n°1047431
chrisbk
-
Posté le 14-04-2005 à 14:52:53  profilanswer
 

bonjour  [:maxxxxxx]  
 
Je sai que parler de design en C c'est un peu comme de parler d'acceleration a propos d'une deux chevaux, mais en fait je voulais juste savoir si j'etais le seul a faire ca, et ske vous en pensez. Bon, en C, vous le savez il y a qu'un global scope et tout va dedans. Venant du C#/C++, ca me saoule un peu paske je trouve ca tout caca, surtout quand vous voulez faire des constantes, fo tjs esperer que personne a pas deja coller un #define identique quelque part, idem pour les fonctions ou alors fo prefixer a mort, etc etc.  
Bref, ca manque de namespace, cette histoire. Un peu de separation dans le code, quoi ! Zyva.
 
Donc vala ce que je fais depuis peu pour tacher de demeler un peu le bordel :
 
 
truc.h :

Code :
  1. extern const struct _Truc {
  2. const char * maconstante;
  3. struct {
  4.  const char *Paul;
  5.  const char *Roger;
  6.  }Machin;
  7. }Truc;


 
Et doncques dans truc. :

Code :
  1. const struct _truc = {
  2. {
  3.  "maconstante",
  4.  {
  5.   "Paul",
  6.   "Roger"
  7.  }
  8. }
  9. };


Et doncques ailleurs dans le code on peut savamment faire :

Code :
  1. printf("%s\n",Truc.maconstante);


 
ce que je trouve assez superbe
 
Notez, ca marche aussi avec des fonctions
 
 
Yop.h:

Code :
  1. extern const struct _Yop {
  2.    int (*toto)(int a);
  3. }Yop;


 
 
Yop.c:

Code :
  1. static int toto(int a) {
  2. ..
  3. }
  4. const struct Yop = {toto};


(pour les raleurs habituels : non je pense pas avoir inventé qqchose, non je trouve pas ca laid, je trouve meme ca passablement pas mal, tant qu'on abuse pas dans les struct { struct { struct {)


Message édité par chrisbk le 14-04-2005 à 14:53:41

---------------
NP: HTTP Error 764 Stupid coder found
mood
Publicité
Posté le 14-04-2005 à 14:52:53  profilanswer
 

n°1047433
coffeeman
Posté le 14-04-2005 à 14:53:28  profilanswer
 

C'est l'anniversaire de qui ?


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
n°1047435
chrisbk
-
Posté le 14-04-2005 à 14:54:05  profilanswer
 

stfu noob


---------------
NP: HTTP Error 764 Stupid coder found
n°1047444
schnapsman​n
Zaford Beeblefect
Posté le 14-04-2005 à 14:57:42  profilanswer
 

et d'ailleurs tu serais bien inspiré de foutres des:

Code :
  1. const char const* conconst;

n°1047447
chrisbk
-
Posté le 14-04-2005 à 14:58:42  profilanswer
 

d'ailleurs quoi ? [:pingouino]
 
je note la suggestion mon cher jean louis [:pingouino]


---------------
NP: HTTP Error 764 Stupid coder found
n°1047450
schnapsman​n
Zaford Beeblefect
Posté le 14-04-2005 à 15:00:39  profilanswer
 

AH AH je t'ai bien eu [:pingouino]

n°1047451
chrisbk
-
Posté le 14-04-2005 à 15:01:25  profilanswer
 

damned, je suis demasqué [:pingouino]
mais je reviendrais [:pingouino]


---------------
NP: HTTP Error 764 Stupid coder found
n°1047667
chrisbk
-
Posté le 14-04-2005 à 16:59:03  profilanswer
 

je tenais a dire que les choux de bruxelles en sauce charbon a clou, ca remise la planche dans l'attribut cartésien [:icon3]


---------------
NP: HTTP Error 764 Stupid coder found
n°1047705
Emmanuel D​elahaye
C is a sharp tool
Posté le 14-04-2005 à 17:18:53  profilanswer
 

chrisbk a écrit :


 
Je sai que parler de design en C c'est un peu comme de parler d'acceleration a propos d'une deux chevaux, mais en fait je voulais juste savoir si j'etais le seul a faire ca, et ske vous en pensez. Bon, en C, vous le savez il y a qu'un global scope et tout va dedans. Venant du C#/C++, ca me saoule un peu paske je trouve ca tout caca, surtout quand vous voulez faire des constantes, fo tjs esperer que personne a pas deja coller un #define identique quelque part, idem pour les fonctions ou alors fo prefixer a mort, etc etc.  
Bref, ca manque de namespace, cette histoire. Un peu de separation dans le code, quoi ! Zyva.


Je préfère séparer la défintion de la structure (qui peut resservir) et la declaration de la globale. C'est plus clair (et chez moi, ça rentre pas dans les même cases...)
 
Un exemple qui compile...


/* famille.h */
 
/* structure  */
struct famille
{
   const char *nom;
 
   struct
   {
      const char *papa;
      const char *maman;
   }
   parents;
};
 
/* globale */
extern const struct famille Famille;



/* famille.c */
#include "famille.h"
 
/* globale initialisee */
const struct famille Famille =
{
   "Dugland",
   {
      "Paul",
      "Paulette",
   },
};



#include <stdio.h>
 
#include "famille.h"
 
int main (void)
{
   printf ("%s\n", Famille.nom);
   printf (" %s\n", Famille.parents.papa);
   printf (" %s\n", Famille.parents.maman);
 
   return 0;
}


Message édité par Emmanuel Delahaye le 15-04-2005 à 08:34:24

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1048620
Mackila
Posté le 15-04-2005 à 13:31:36  profilanswer
 

C'est rigolo, comme idée, ca. J'essaierai de le coller dans mon prochain projet C, au moins pour les constantes :) (les fonctions la dedans, c'est ptet un peu lourd, non ?)
Inconvénient : comme tu dis, faut pas abuser sur l'imbrication des structures, vu qu'on est obligé de taper la totalité, après :P

mood
Publicité
Posté le 15-04-2005 à 13:31:36  profilanswer
 

n°1049063
chrisbk
-
Posté le 15-04-2005 à 18:40:43  profilanswer
 

bin les fonctions bof, ca va. Ca permet tjs de regrouper, ou si jamais tu as des "données" associées a la fonction, ca permet de regrouper
 
le plus moche ca reste l'initialisation de la structure dans le .c


---------------
NP: HTTP Error 764 Stupid coder found
n°1049188
printf
Baston !
Posté le 15-04-2005 à 20:53:00  profilanswer
 

chrisbk a écrit :


je trouve ca tout caca, surtout quand vous voulez faire des constantes, fo tjs esperer que personne a pas deja coller un #define identique quelque part


 
Yaka mettre directement les nombres magiques dans le code.

n°1049191
chrisbk
-
Posté le 15-04-2005 à 20:54:55  profilanswer
 

[:pingouino]


---------------
NP: HTTP Error 764 Stupid coder found
n°1049198
Mackila
Posté le 15-04-2005 à 21:02:29  profilanswer
 

Pourquoi, moche ?

n°1049199
printf
Baston !
Posté le 15-04-2005 à 21:02:37  profilanswer
 

Erreur 764 ? :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Design en C

 

Sujets relatifs
comment faire mon design en css ?Changer le design de son site
Design sur toutes les pagesDesign Pattern
Du design en C++[PHP] Inclure un forum dans le design de mon site
[Design Patterns] On corrige ensemble ?[XHTML/CSS] Bien débuter, et coder un design proprement
PHPMYPAGER + design = debutantje cherche un livre d'or design pour coller avec la charte de mon site
Plus de sujets relatifs à : Design en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR