Is it possible to use previous arguments in a functions parameter list as the default value for later arguments in the parameter list? For instance,
void f(
The answer is no, you can't. You could get the behaviour you want using overloads:
void f(int a, int b, int c); inline void f(int a, int b) { f(a,b,b); } inline void f(int a) { f(a,a,a); }
As for the last question, C doesn't allow default parameters at all.