Many languages (such as managed extensions to C++, Microsoft Visual Basic) support optional arguments through assigning default values to some arguments. For example:
void Foo (int a, double b = 1.2, int c = 1) { if ( a == c) //… } The caller can optionally provide values for b and c. All of the following are valid calls: Foo (10, 55.3, 12); Foo (10, 1.3); // c == 1 Foo (11) // b = 1.2, c == 1