// declare function
// NOTE: needs to be BEFORE main() when functions are DEFINED AFTER main()
int function(int arg);
// define function
int function(int arg) {
// do something
return 0;
}
// EXAMPLE: power function
// declare function
int power(int base, int x);
// main() function
int main(void) {
// call function
power(2, 3)
// 8
return 0;
}
// define function
int power(int base, int x) {
/* multiply base with itself x times */
int result = 1;
int i;
for (i = 0; i < x; i++) {
result = result * base;
}
return result;
}
// END EXAMPLE
// variable arguments
#include <stdarg.h>
// OUTSIDE SCOPE: define function with variable arguments
double average(int n, ...) {
// require stdarg.h
va_list valist;
double sum = 0.0;
int i;
// initialise valist for n arguments
va_start(valist, n);
// access arguments assigned to valist
for (i = 0; i < n; i++) {
sum += va_arg(valist, int);
}
// clean memory reserved for valist
va_end(valist);
return sum / n;
}
// INSIDE SCOPE: use function
printf("Average of 2, 3, 4, 5: %f\n", average(2, 3, 4, 5));
// Average of 2, 3, 4, 5: 3.500000
Updated on May 27, 2023 Changelog