• [^] # Re: Plutôt beauté du design

    Posté par . En réponse au journal "beauté du code". Évalué à 2. Dernière modification le 01 octobre 2014 à 18:43.

    Tu « triches » dans le sens où tu mets le corps du while sur la même ligne. :) J'aurais pu faire pareil avec mon corps vide dans le for.

    Ensuite, utiliser n /= 2 dans la post-condition n'est absolument pas un détournement, car il s'agit bien d'une façon d'itérer sur la boucle. Par exemple, écrire un truc comme ceci (en supposant une liste chaînée) :

    link_t*
    find(list_t* list, const void* data)
    {
     link_t* cur = NULL;
     for (cur = list->head; cur != NULL && list->cmp(cur->data,data) != 0; cur = cur->next)
     ;
     return cur;
    }

    est parfaitement idiomatique, et clair. Tu pourrais bien sûr écrire quelque chose du genre :

    link_t*
    find(list_t* list, const void* data)
    {
     for (link_t *cur = list->head; cur != NULL; cur = cur->next)
     if (list->cmp(cur->data,data) == 0) 
     return cur;
     return NULL;
    }

    Et ce serait (peut-être) plus clair pour un nouveau venu dans le monde du C, mais à mon avis ni plus ni moins pour quelqu'un qui connaît « raisonnablement bien » le langage (c'est-à-dire qui a plus de 6 mois d'expérience avec).