J'ai déjà répondu à cette question.
Quant au C89, une partie des exemples ci dessus sont également du C89 valide (mais pas tous il est vrai).
En plus, à l'inverse je peux aussi te faire des exemples qui sont du C89 valide mais pas du C99 ni du C++ valide (j'en ai pas ci dessus parce que je me suis appuyé sur C99 pour mes exemples).
Juste un petit pour la route, si t'en veux d'autres je peux

int main() {
fonction();
}
(c'est le fichier complet)