delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/04/05/12:15:26

From: Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: How to write #define with several args
Date: 5 Apr 2000 15:43:29 GMT
Organization: Aachen University of Technology (RWTH)
Lines: 23
Message-ID: <8cfmv1$grd$1@nets3.rz.RWTH-Aachen.DE>
References: <8cfir5$2kui$1 AT news DOT itfs DOT nsk DOT su>
NNTP-Posting-Host: acp3bf.physik.rwth-aachen.de
X-Trace: nets3.rz.RWTH-Aachen.DE 954949409 17261 137.226.32.75 (5 Apr 2000 15:43:29 GMT)
X-Complaints-To: abuse AT rwth-aachen DOT de
NNTP-Posting-Date: 5 Apr 2000 15:43:29 GMT
Originator: broeker@
To: djgpp AT Delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Michael N. Filippov <michael AT idisys DOT iae DOT nsk DOT su> wrote:

> Does anybody know how could i write #define to use it with
> not predefined number of args. Example:

In standard C, as defined in 1989, you can't. The new standard revision,
and GCC as an existing extension, support it, but for those, you've
got the syntax wrong.

> #include <stdio.h>

> #define P(format, s) printf(format, s) // this is for one argument
> #define MP(format, ...) printf(format, ...) // error 

Make that line

  #define MP(format, ...) printf(format, __VA_ARGS__) 

and it may work. Or look up the correct syntax in the GNU cpp manual
('info cpp').
-- 
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019