C secp256k1: What is the purpose of the idiom '(void)data;'? The following code is contained in the file secp256k1.c:

static void 
default_illegal_callback_fn( 
  const char* str, 
  void* data) 
{
  (void)data;
  fprintf(stderr, "[libsecp256k1] illegal argument: %s\n", str);
  abort();
}


Could someone explain the purpose of the line (void)data;? I am pretty sure there is one, but I can't figure out what it is :(
Without (void) data;, gcc will complain about data being an unused variable. This is used throughout the codebase, especially for context objects, to deal with parameters which are required for API/consistency reasons but not actually needed.