PHP has func_get_args()functions to get all the arguments, and JavaScript has an object functions.
func_get_args()
functions
I wrote very simple max()in C
max()
int max(int a, int b) { if (a > b) { return a; } else { return b; } }
I am sure that in most languages you can provide any number of arguments in their built-in max()(or equivalent). Can you do it in C?
I thought this question might have been what I wanted, but I don’t think so.
Please keep in mind I'm still studying. :)
Many thanks.
You can write a variable argument function that takes a number of arguments, for example
#include <stdio.h> #include <stdarg.h> int sum(int numArgs, ...) { va_list args; va_start(args, numArgs); int ret = 0; for(unsigned int i = 0; i < numArgs; ++i) { ret += va_arg(args, int); } va_end(args); return ret; } int main() { printf("%d\n", sum(4, 1,3,3,7)); /* prints 14 */ }
, (. va_arg).
va_arg
, C , , printf() .
printf()
:
#include <stdio.h> #include <stdarg.h> #include <limits.h> static int myMax (int quant, ...) { va_list vlst; int i; int num; int max = INT_MIN; va_start (vlst, quant); for (i = 0; i < quant; i++) { if (i == 0) { max = va_arg (vlst, int); } else { num = va_arg (vlst, int); if (num > max) { max = num; } } } va_end (vlst); return max; } int main (void) { printf ("Maximum is %d\n", myMax (5, 97, 5, 22, 5, 6)); printf ("Maximum is %d\n", myMax (0)); return 0; }
Maximum is 97 Maximum is -2147483648
quant. , : (5), .
quant
5
, NULL . max , .
NULL
max
printf , . , % , .
printf
%
. C99 , C :
, , , C99 . ... . stdarg.h.
...
stdarg.h
, varargs c ` `varargs '<
va_args , . , 0-n . , 2 ,
, variadic C. , , printf,
int printf(const char *format, ...);
... , , .
, va_start, va_arg , , stdarg.h. .
va_start
, , "" . , printf , . , , .
printf("%d");
- , main(). :
main()
int myfunc(type* argarray, int argcount);
C , .
C
: printf()
printf("Hello World\n"); printf("%s\n", "Hello World"); printf("%d + %d is %d\n", 2, 2, 2+2);
max, , , .
<stdarg.h> va_list, va_start, va_arg va_end, .
<stdarg.h>
va_list
va_end
http://www.kernel.org/doc/man-pages/online/pages/man3/stdarg.3.html
Source: https://habr.com/ru/post/1763994/More articles:Any way to insert an anonymous array into a collection? - javaTutorials for errors and Java syntax - javasaving UIImage to a file costs a lot of time - iphoneJAX-RS Jersey - How to Force a Response ContentType? Overwrite content reconciliation - jerseyHow to recursively search files in emacs by skipping .svn directories - emacsSilverlight: "The type or namespace name" CookieContainer "does not exist in the namespace" System.Net "" - .net-4.0How to find out the start / start time of an Android application? - androidЕсть ли простой способ преобразования числа в шестнадцатеричные символы ASCII в C? - cCan I make the simulator spin in slow motion? - iphoneAm I missing a pointer point? - cAll Articles