bonjour
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 :
- extern const struct _Truc {
- const char * maconstante;
- struct {
- const char *Paul;
- const char *Roger;
- }Machin;
- }Truc;
|
Et doncques dans truc. :
Code :
- const struct _truc = {
- {
- "maconstante",
- {
- "Paul",
- "Roger"
- }
- }
- };
|
Et doncques ailleurs dans le code on peut savamment faire :
Code :
- printf("%s\n",Truc.maconstante);
|
ce que je trouve assez superbe
Notez, ca marche aussi avec des fonctions
Yop.h:
Code :
- extern const struct _Yop {
- int (*toto)(int a);
- }Yop;
|
Yop.c:
Code :
- static int toto(int a) {
- ..
- }
- 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