Point-virgule à la fin des if-statements et des fonctions en C

Je viens de croiser un peu de code que la surutilisation des points-virgules, ou utilisez le point-virgule pour des fins différentes que je ne suis pas au courant de.

J'ai trouvé des points-virgules à la fin de si-états et à la fin de fonctions. Par exemple:

int main (int argc, char * argv[]) {
    //some code

    if (x == NULL) {
        //some code
    };  <-----

    //more code

    return 0;
}; <---

Il est en train de compiler avec les cc, pas de gcc.
Que ces points-virgules? Je suis en supposant qu'il n'y a pas de différence, car le compilateur serait juste de le considérer comme instruction vide.

source d'informationauteur codingbear