Function with a default value

//The function:
bool my_function(uint32_t timeout)
{
  //...
}

//The function definition, with the default value:
bool my_function(uint32_t timeout = 500);
extern bool my_function(uint32_t timeout = 500);

//Calling it - both of these will work:
  my_function();
  my_function(1000);
With multiple variables
//The function:
bool my_function(uint32_t some_value, uint32_t timeout)
{
  //...
}

//The function definition, with the default value:
bool my_function(uint32_t some_value, uint32_t timeout = 500);
extern bool my_function(uint32_t some_value, uint32_t timeout = 500);

//Calling it - both of these will work:
  my_function(2, );
  my_function(2, 1000)