[linux-l] Re: Arrays in C

Rocco Rutte pdmef at cs.tu-berlin.de
Di Nov 15 15:17:05 CET 2005


Hi,

* Steffen Dettmer [05-11-14 23:41:06 +0100] wrote:
>* Rocco Rutte wrote on Thu, Nov 10, 2005 at 11:01 +0000:

>>   #define DEBUG(X) do { \
>>     fprintf (stderr, "%s: ", __FUNCTION__); \
>>     /*fprintf X; */ \
>     fprintf (stderr, X); \
>>     fprintf (stderr, "\n");
>>   } while (0);

>Warum do {} while? {} block ist hier doch nichtmal notwendig, oder?

Das passt syntaktisch überall rein.

>DEBUG("%d", 15) gibt einen Fehler - so ein Makro kann dann aber doch gar
>keine Format-Strings mehr?!

DEBUG(("%d", 15)) oder DEBUG(("foo: %s\n", string)). Alle Argumente für 
printf() müssen geklammert werden. Obiges Macro is natürlich quatsch, 
zumindest mit fprintf(). Mit printf() ginge es ohne zusätzliche 
Funktion...

   bye, Rocco
-- 
:wq!



Mehr Informationen über die Mailingliste linux-l