200Fermer202
GoldenCrystalLe 17/11/2009 à 13:19
./200 > Ou même une macro-structure très simple:
typedef void (*double_pointeur_de_la_mort)(void *, void *);
#define ROX(n) struct je_code_comme_un_gros_porc_mais_je_m_en_fous ## n { int je_sais_pas_trop_quoi[n]; }; /* #trioui# */ \
    void apeller_la_fonction_ ## n(void (*la_fonction)(), struct je_code_comme_un_gros_porc_mais_je_m_en_fous ## n *les_parametres) { la_fonction(&les_parametres); }; /* kikoo ! lol ! */
#define RIX(n) (double_pointeur_de_la_mort)apeller_la_fonction_ ## n
#define NOMBRE_DE_ROXXOR/*_PRESENTS_DANS_LA_SALLE 0 * */10000

ROX(0)
ROX(1)
// Et ainsi de suite [...]
ROX(NOMBRE_DE_ROXXOR)

double_pointeur_de_la_mort apeller_la_fonction_en_vrai[NOMBRE_DE_ROXXOR] = {
    RIX(0),
    RIX(1),
    // Et la série continue...
    RIX(NOMBRE_DE_ROXXOR)
}

int *gros_bouffeur/* de mémoire */[1000];


void apeller_la_fonction(void (*la_fonction)(), void *les_para_metres, int c_la_taille_qui_compte)
{
    apeller_la_fonction_en_vrai[c_la_taille_qui_compte](la_fonction, les_para_metres);
}
trilove
(J'ai absolument pas testé le code, alors si jamais par le plus grand des hasards ça devait fonctionner, soyez assurés que ce n'était pas voulu.)