7 recettes pour aller plus loin avec le préprocesseur C
Lire l'article
·
Voir tous les commentaires
·
Commenter
#
Pantoufle
06.08.10, 12:11.
thx. Je remarque en parcourant les <stdio.h> ou autres que beaucoup de constantes sont définies par des #define, ce qui est difficilement débuggable. Est-ce que toutes les remplacer par des enum est impossible, empêcherait la compilation, etc. ?
#
rz0
06.08.10, 10:17.
@Pantoufle
C’est un classique. Le problème c’est quand tu veux placer ta macro à un endroit qui n’accepte qu’une seule instruction, typiquement dans une clause else :
#define bar() { ... }
if (...)
foo();
else
bar();
Et là ça coince, parce que bar(); devient { ... }; ce qui est en fait deux instructions : le point-virgule constitue une instruction vide !
#
Pantoufle
05.08.10, 22:22.
{ ... } n'est pas égale à do { ... } while(0) ? C'est que la deuxième m'a toujours parue un peu tordue.
#
rz0
16.03.10, 02:12.
C’est le but ! Ce que je veux, c’est écrire sur des techniques et des idiomes, pas vraiment enseigner des constructions du langage, parce que je trouve que c’est cela qu’il manque, souvent ; on a les bases, on connait la syntaxe et on comprend la sémantique… mais on ne sait pas quoi en faire !Même si je connaissais déjà les différentes petites choses décrites ici, je dois bien avouer que je n’avais pas pensé à toutes ces petites applications… bien intéressant :)
#
Yno
15.03.10, 21:17.
le C c'est bien.
#
Ban
15.03.10, 19:24.
[…] J’ai donc décidé de réagir, à mon échelle, en publiant sur mon modeste blog des articles sur le C pour les bons !
Miam, voici quelque chose qui m’allèche bien !
Même si je connaissais déjà les différentes petites choses décrites ici, je dois bien avouer que je n’avais pas pensé à toutes ces petites applications… bien intéressant :)
Vivement la suite !
PS : oui, ce commentaire peut être classé dans la catégorie « soutient moral »
#
Yno
15.03.10, 17:37.
En fait c’est rigolo, parce que le jour où j’ai découvert toutes ces techniques obscurs pour acquérir de la généricité j’ai trouvé ça assez cool, vous pourrez même trouver un petit exemple d’utilisation ici (laideur garantie).
Cependant c’est de moins en moins le cas, de ce fait je ne connaissais pas encore toutes les feintes existantes et utilisées, ce qui est assez intéressant en fait, mais peu appétissant.
Quoiqu’il en soit je t’encourage à continuer cette série d’articles !
#
drk-sd
15.03.10, 03:21.
Même si je ne fais pas de C, c'est sympa comme article, pour voir comment vous autres, amis du passés, programmez dans la vie de tous les jours. :-° Non réellement, c'était cool comme article.
# rz0
06.08.10, 14:16.
Just remplacer des
#definepar desenumne changerait pas grand chose, vu que tout ça va se retrouver dans des int après… donc ça change rien au debug.Et oui, changer les
#definepar desenumempêche des tests du genre#ifdefou encore les évaluations dans les#if.