On peut tout manipuler, stocker une adresse de fonction dans une variable et l'appeler. Le principe du C est simple, il va t'imposer un typage fort parce qu'il est compilé, et cela t'empèche de faire des conneries, mais cela n'empèche pas de passer outre, car tu peux très bien (attention, gros raccourci), changer radicalement le type d'une variable, simplement en passant par des pointeurs (le cast ne suffit pas toujours, et peut modifier le contenu, selon le type de cast…).