[linux-l] Re: Arrays in C
Rocco Rutte
pdmef at cs.tu-berlin.de
Do Nov 10 12:01:34 CET 2005
Hi,
* Steffen Dettmer [05-11-09 23:00:33 +0100] wrote:
>* Axel Weiß wrote on Sun, Nov 06, 2005 at 09:31 +0100:
>> Wenn ich z.B. den
>> gcc voraussetze (nur der hat ein __FUNCTION__), sieht mein
>> Standard-Ausgabemakro etwa so aus:
>> #define DEBUG(fmt, args...) \
>> fprintf(stderr, "%s: " fmt "\n", __FUNCTION__, ##args)
>geht aber nicht, wenn ich schreibe:
>/* akademisch beklopptes Beispiel ich weiss */
>snprintf(fmt, "At %d (%%s)");
>DEBUG(fmt, "Hier");
>daher hier vielleicht lieber va_list, machen wir in der Firma jedenfalls
>so (format string neu erzeugen), glaub ich.
oder einfach:
#define DEBUG(X) do { \
fprintf (stderr, "%s: ", __FUNCTION__); \
fprintf X; \
fprintf (stderr, "\n");
} while (0);
DEBUG(("%s", foo));
oder besser:
#ifdef __GNUC__
#define DEBUG(X) do { \
fprintf (stderr, "%s:%d: ", __FUNCTION__, __LINE__); \
fprintf X; \
fprintf (stderr, "\n");
} while (0);
#else
#define DEBUG(X) do { \
fprintf (stderr, "%s:%d: ", __FILE__, __LINE__);
fprintf X;
fprintf (stderr, "\n");
}
#endif
bye, Rocco
--
:wq!
Mehr Informationen über die Mailingliste linux-l