Hi Rich, Am Dienstag, den 05.11.2013, 18:31 -0500 schrieb Rich Felker: > While it doesn't really matter in this file, in general, macro > arguments should be properly parenthesized, as in: > +#define NUM(n) ((n) == -1 ? 0 : -1), ((n) == -1 ? 0 : (n)) for such a macro that is replacing two function arguments, I'd go for a much more descriptive name, something like NUM2ARGS > +#define STR(s) ((s) ? (s) : "") in the context of the actual function that would certainly overkill, but generally it is not a good idea to mix user strings and string literals without consting them. So in a general context I'd go for something like #define STR(S) ((char const*)((S) ? (S) : "")) or even #define STR(S) ((S) ? (char const*){ (S) } : "") to have a better type check for the argument Jens -- :: INRIA Nancy Grand Est :: http://www.loria.fr/~gustedt/ :: :: AlGorille ::::::::::::::: office Nancy : +33 383593090 :: :: ICube :::::::::::::: office Strasbourg : +33 368854536 :: :: ::::::::::::::::::::::::::: gsm France : +33 651400183 :: :: :::::::::::::::::::: gsm international : +49 15737185122 ::