Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!helios!bcm!dimacs.rutgers.edu!mips!pacbell.com!ucsd!mvb.saic.com!ncr-sd!serene!telesys!kreed From: kreed@telesys.cts.com (Kevin W. Reed) Newsgroups: comp.lang.c Subject: Prototyping Woes Message-ID: <1991Mar5.030826.15713@telesys.cts.com> Date: 5 Mar 91 03:08:26 GMT Distribution: comp Organization: TeleSys Systems, San Diego, CA Lines: 81 I have a routine that can accept multiple parameters. I'm having a problem getting the compiler to accept a prototype so that it doesn't complain that I have "too many actual arguments". The routine takes a string of characters with fields separated by |'s and extracts the fields and places them into the arguments that it is called with. For example: buffer = "field1|field2|field3" would be extracted with: pickit ( 3, buffer, fld1, fld2, fld3); and buffer = "field1|field2|field3|field4" would be extracted with: pickit ( 4, buffer, fld1, fld2, fld3, fld4); The routine works great. But the compiler continues to complain with warning errors that "too many actual parameters" are being called. I have tried several variations, all with the same results. Below is the routine, Any suggestions? ----- pickit routine ------ pickit(int nargs, char *buffer, char *args) { char **p; int i, l; p = &args; l=0; /* First check that they are enough fields for the request */ for ( i = strlen (buffer) ; i > 0 ; i-- ) if ( buffer[ i - 1 ] == '|' ) l++; if ( l < nargs ) return(ERROR); /* Now extract the fields */ for ( i = 0 ; i < nargs ; i++ ) { while ( ( *( *p )++ = *buffer++ ) ! = '|' ); *( *p - 1 ) = '\0'; p++; } return(TRUE); } ----- end of pickit routine ------ Below is the actual error message that I get from the compiler [only one shown for brevity] ts2umodify.c(122) : warning C4020: 'pickit' : too many actual parameters The system I'm using is... System: Intel 386DX Clone OS: SCO Xenix 386 2.3.[23] Dev: SCO Development System 2.3.1b Thanks for the help -- Kevin W. Reed --- TeleSys Development Systems -- PO 17821, San Diego, CA 92177 TeleSys-II BBS & telesys.UUCP 619-483-3890 ----- Telebit PEP Line 619 483 0965 UUCP: {nosc,ucsd}!crash!telesys!kreed -------- Internet: kreed@telesys.cts.com