Newsgroups: fj.lang.c
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!news.imnet.ad.jp!usenet.seri.re.kr!news.dacom.co.kr!newsfeed.internetmci.com!in1.uu.net!globalcenter.net!nntp-hub.barrnet.net!jpgate.inoc.sj.nec.com!newssv1.ho.nec!tyo2.gate.nec!news.iij.ad.jp!jmasgw!nowhere!hoj
From: hoj@sysplan.co.jp (Masaaki Hojo)
Subject: Re: macro arguments
Message-ID: <1996Jan25.093011.3426@sysplan.co.jp>
Sender: news@sysplan.co.jp (Usenet News System)
Nntp-Posting-Host: sp01
Organization: sysplan Inc.
X-Newsreader: mnews [version 1.19] 1995-07/21(Fri)
References: <yamagen-2501961504190001@ews01>
Date: Thu, 25 Jan 1996 09:30:11 GMT
Lines: 146
Xref: galaxy.trc.rwcp.or.jp fj.lang.c:2150
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=2150&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$BKL[j!w(B40$B2a$.$N8=Lr$*$8$5$s$G$9!#(B

<yamagen-2501961504190001@ews01>$B$N5-;v$K$*$$$F(B
yamagen@yaskawa.co.jp$B$5$s$O=q$-$^$7$?!#(B
>>   ($BA0N,(B)
>> $B>/$7D4$Y$^$7$?$,!"%^%/%m$K2DJQD9$N0z$-?t$rEO$9(B
>> $BJ}K!$,$o$+$j$^$;$s!#(B
>> 
>> $B#1!%(B#ifdef $B$rMQ$$$k(B
>> $B!!!!!J%3!<%I$,8+$E$i$$!K(B
>> $B#2!%(B#define debug_print if(DEBUG) printf
>> $B!!!!!J%3%s%Q%$%i$N:GE,2=$K0MB8!K(B
>> 
>> $BEy$r;W$$$D$-$^$7$?$,!"$I$A$i$b$9$C$-$j$7$^$;$s!#(B
>> 
>> $B#1!%%^%/%m$K2DJQD9$N0z$-?t$rEO$9J}K!(B
>> $B#2!%0lHLE*$JN"5;(B
>> $B#3!%HkB"$NN"5;(B


$B$^$:!"$h$/8@$o$l$k$3$H$r0zMQ$7$F$*$-$^$7$g$&(B($B=PE5$OK:$l$F$7$^$C$?(B)
 +----------------------------------------------+
 | $B%G%P%C%0MQ$N%3!<%I$r<N$F$k$3$H$O!"(B|
 | $B5_L?F90a$r$D$1$J$$$GBg3$$K$N$j$@$9$N$HF1$8(B|
 +----------------------------------------------+

$B$3$l$P$+$j$+!"(B
$B%a%b%jGK2u$J$I$,$"$C$?>l9g!"%G%P%C%0MQ$K%W%j%s%HJ8$rA^F~$9$k$@$1$G!"(B
$BGK2u$5$l$k>l=j$,JQ$o$C$F$7$^$$!"8=>]$,1#$l$F$7$^$&$3$H$,$h$/$"$j$^$9!#(B

$B$H$$$&M}M3$G!";d$,$h$/;H$C$F$$$k$N$O!"0J2<$r4pK\$H$9$kJ}K!$G$9!#(B


$B$^$:!"0J2<$N%^%/%m$rMQ0U$7$^$9!#(B
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#define TRACE(x)        if(Debug >= (x)) deb_print
#define IF_TRACE(x)     if(Debug >= (x))

#define SET_TRACE(x)    Debug = (x)

exrernintDebug;
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
$B%G%P%C%0MQ$N%l%Y%k$r;H$o$J$$$J$i!"(B
#defineTRACEif( Debug != 0 ) deb_print
$BEy$G(BOK$B$G$9!#(B

$B$^$?!"(Bdeb_print $B$O(B printf$B$K$7$F$b$$$$$G$9$h!#(B
#define TRACE(x)        if(Debug >= (x)) printf
$B$7$+$7!"$9$C$-$j$7$J$$$s$G$9$h$M(B($B;d$O$+$^$o$J$$$,(B)$B!#(B

$B<!$K!"4X?t(B deb_print() $B$r:n@.$7$^$9!#(B
$B$3$l$O!"%G%P%C%0MQ$NI=<($r(B stdout $B0J30$K$7$?$$>l9g$d!"(B
$BI=<(%a%C%;!<%8$r9)IW$G$-$k$N$G!"(B
#define TRACE(x)        if(Debug >= (x)) print
$B$h$j!"JXMx$G$9!#(B


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   :
#if _USE_VARARGS_
# include       <varargs.h>
#else
# include       <stdarg.h>
#endif
   :
intDebug;

/*
 * deb_print $B$O!"0J2<$N7A$G8F$S=P$5$l$k(B
 *      deb_print( format, arg1, arg2...)
 */
#if _USE_VARARGS_
void
deb_print( va_alist )
   va_dcl
#else
void
deb_print( const char *fmt, /* [arg,] */ ... )
#endif
{
    va_list     vargs;

#ifdef _USE_VARARGS_
   char        *fmt;

   va_start( vargs );
   fmt = va_arg( vargs, char *);
#else
   va_start( vargs, fmt );
#endif

   (void)vfprintf( stderr, fmt, vargs );
   va_end( vargs );
   fflush( stderr );
}
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    ($BCm(B) _USE_VARARGS_  : stdarg.h $B$OL5$$;~MQ(B ($B@N$N(B varargs.h $B$NJ}(B)

$B;H$$$+$?$OMM!9!#(B
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        :
    TRACE(3)( "[abc] i=%d, str:%s ", i, str );
:
    IF_TRACE(9) {
:
fprintf( "stderr, "Change str?" );
:
fgets( str, sizeof(str), stdin );
:
    }
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

main$BItJ,$G!"%*%W%7%g%s$r2r@O$7$F!"%G%P%C%0MQ$NI=<(%l%Y%k$r7h$a$^$9!#(B
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
     :
    SET_TRACE( 0 );
    while( ( c = getopt(argc,argv,"$B>!<j$K;XDj$7$F$M(B") ) != EOF ) {
switch( c ) {
 :
case 'd' :/* $B%G%P%C%0MQ(B */
    SET_TRACE( atoi(optarg) );
    break;
 :
}
    }
     :
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


$B:G8e$K!"(B
>> $B#1!%%^%/%m$K2DJQD9$N0z$-?t$rEO$9J}K!(B

$B$3$l$G$9$,!"(BC$B$N(B FAQ $B$G8+$?$3$H$,$"$j$^$9!#(B

#defineDEBUG(args)printf args

$B;H$&B&$O(B
if( n != 0 ) DEBUG( ("i=%d, str=%s\n", i, str ) );
    $B",(B                       $B",(B
     $B$3$N3g8L$r=q$+$s$H$$$+$s!*(B


--
 $B!?!?(B)
($B!?!?(B  $BKL[j@582!J$[$&$8$g$&$^$5$"$-!K(B
$B!|!C(B     hoj@sysplan.co.jp
