Pour l'apprentissage et la démonstration, j'ai besoin d'une macro qui imprime son paramètre et l'évalue. Je suspecte que c'est un cas très commun, peut-être même une FAQ mais je ne peux pas trouver des références réelles.Macro qui imprime une expression et l'évalue (avec __STRING)
Mon code actuel est:
#define PRINT(expr) (fprintf(stdout, "%s -> %d\n", __STRING(expr), (expr)))
puis:
PRINT(x & 0x01);
Il fonctionne très bien, mais je ne suis pas sûr du statut juridique de la macro __STRING, en particulier car il est dans le secteur privé __ espace de noms.
Alors, mes questions:
- Y at-il une meilleure façon d'écrire cette macro?
- Est-ce que __STRING standard/great/evil?
- Comment utiliser les outils de recherche existants pour trouver au sujet __STRING? Le moteur de recherche de SO recherche simplement tout ce qui contient la chaîne :-(
J'ai déjà rencontré des problèmes similaires dans le passé. ".net" était un grand. – aib
Vous pouvez utiliser google pour rechercher StackOverflow en utilisant le site de google: argument :) e.g. "__string site: stackoverflow.com" (qui n'a rien retourné). – codelogic