Mail Archives: djgpp/2000/09/28/15:15:22
| From:  | "A. Jans-Beken" <jansb000 AT wxs DOT nl>
 | 
| Newsgroups:  | comp.os.msdos.djgpp,rec.games.programmer,alt.games.programming
 | 
| Subject:  | Help with variable argument-list (va_list)
 | 
| Date:  | Thu, 28 Sep 2000 21:00:03 +0200
 | 
| Organization:  | World Access
 | 
| Lines:  | 44
 | 
| Message-ID:  | <39D39533.33F46DA4@wxs.nl>
 | 
| NNTP-Posting-Host:  | ipc3797b69.dial.wxs.nl
 | 
| Mime-Version:  | 1.0
 | 
| X-Trace:  | reader3.wxs.nl 970167011 13271882 195.121.123.105 (28 Sep 2000 18:50:11 GMT)
 | 
| X-Complaints-To:  | abuse AT wxs DOT nl
 | 
| NNTP-Posting-Date:  | 28 Sep 2000 18:50:11 GMT
 | 
| X-Mailer:  | Mozilla 4.7 [en-gb] (Win98; I)
 | 
| X-Accept-Language:  | en
 | 
| To:  | djgpp AT delorie DOT com
 | 
| DJ-Gateway:  | from newsgroup comp.os.msdos.djgpp
 | 
| Reply-To:  | djgpp AT delorie DOT com
 | 
I am trying to create a wrapper for a function that uses a variable
argument list (like printf).
I have tried the code below, and the first argument works, but not the
second.
What is wrong in this example?
(the program compiles with DJGPP 2.95)
// ---- 8< ---- 8< ----
// file: test.cpp
#include <iostream>
#include <stdio.h>
#include <stdarg.h>
void test_me(char *fmt, ... ) {
   va_list ap;
   va_start(ap,fmt);
   printf(fmt,va_arg(ap,va_list));
   va_end(ap);
   }
int main() {
   cout << "Test of va_list and co...\n";
   cout << "=========================\n\n";
   printf("The printf() function is working fine.\n");
   int i = 3;
   char *s = "Hello dear people";
   // The function test_me is a wrapper for printf.
   // How can I wrap a function with a variable number
   // of parameters?
   test_me("My arguments are %d and %s\n",i,s);
   return 0;
   }
// ---- 8< ---- 8< ----
Please send answers to "jansb000 AT wxs DOT nl"
- Raw text -