Nelle funzioni serve per dire che "la funzione non ritorna nulla" (appunto come una funzione che stampa solo a video senza dover "passare" valori al resto del programma).
In altri casi (usato come void*) è un puntatore a funzione.
Difficile che vedrai tali costrutti in corsi base
In pratica
#include <stdio.h>
//funzione con parametro intero e lo stampa
void fun(int a)
{
    printf("Il valore passato è %d\n", a);
}
  
int main()
{
   
    void (*fun_ptr)(int); //definisco il puntatore a funzione
    fun_ptr = &fun;  //assegno a fun_ptr l'indirizzo della funzione
   
    // Chiamo fun(), con 10 come parametro usando fun_ptr
    (*fun_ptr)(10);
    //definisco una macro per non avere troppi * in giro
    #define nuf (*fun_ptr) 
    //chiamo la funzione ridefinita senza dover dereferenziare direttamente il puntatore
    nuf(11);
  
    return 0;
}
O anche si può usare per passare parametri di cui non si conosce il tipo