| | |
variable function parameters functionname(int a, ...)
![]() |
•
•
Join Date: Aug 2004
Posts: 140
Reputation:
Solved Threads: 1
How do I create a function with variable parameters. Will "functionname(float a, ...);" work? If it does how do I use the variables.
Eg.
:cry: :lol: :rolleyes:
Eg.
C Syntax (Toggle Plain Text)
void f1(int i, ...); void main() { int a, b,c; cout<<"Enter 3 values"; cin>>a>>b>>c; f1(a, b, c); } void fi() { //How do I access the variables that are passed as parameters }
:cry: :lol: :rolleyes:
You need at least one real parameter, as you have in your example. Then you use some special macros to access the parameters:
The caviats are:
1) You do not know how many parameters were supplied. Thats why in my sample I had that be the one 'real' parameter.
2) You do not know the type of parameters, so you have to 'guess' and hope the caller knows what they are doing!
printf() and its variants use this, and the format string specifies the number and type of parameters:
printf( "%s %d %x\n", "string", number, number );
but if you screw up you get fun results!
printf( "%s %d %d\n", number, "string", 1.2 ); // ick!
C Syntax (Toggle Plain Text)
void AddSomeNumbers( int howMany, .... ) // any number of 'real' params, folowed by ... { va_list argptr; int ret = 0; va_start( argptr, howMany ); // use the last 'real' param here for (int i = 0; i < howMany; i++) ret += va_arg( argptr, int ); // the next arg is an int, we hope va_end(argptr); return ret; }
The caviats are:
1) You do not know how many parameters were supplied. Thats why in my sample I had that be the one 'real' parameter.
2) You do not know the type of parameters, so you have to 'guess' and hope the caller knows what they are doing!
printf() and its variants use this, and the format string specifies the number and type of parameters:
printf( "%s %d %x\n", "string", number, number );
but if you screw up you get fun results!
printf( "%s %d %d\n", number, "string", 1.2 ); // ick!
![]() |
Similar Threads
- Using function parameters defined in if statement (C++)
- how to convert char to int (C++)
- Question about class function parameters (C++)
- RemoveAll Function (for an Array) (C++)
- help on passing variable to a function? (JavaScript / DHTML / AJAX)
- function passing variables (C)
Other Threads in the C Forum
- Previous Thread: reading and printing a file to screen in C
- Next Thread: Help in Input output C files
| Thread Tools | Search this Thread |
* ansi api array arrays bash binarysearch calculate centimeter changingto char character convert copyanyfile copypdffile createcopyoffile createprocess() csyntax directory dynamic fflush file floatingpointvalidation fork forloop frequency function getlasterror getlogicaldrivestrin givemetehcodez graphics gtkgcurlcompiling gtkwinlinux hardware highest histogram homework i/o ide inches initialization intmain() iso km license linked linkedlist linux linuxsegmentationfault list logical_drives looping loopinsideloop. lowest match matrix microsoft motherboard mqqueue mysql oddnumber odf open opendocumentformat openwebfoundation pdf pointer pointers posix power program programming pyramidusingturboccodes read recursion recv recvblocked repetition reversing scanf scheduling segmentationfault send shape single socketprogramming stack standard strchr string suggestions test unix urboc user variable whythiscodecausesegmentationfault win32api windows.h windowsapi





