La question suivante m'a laissé perplexe : Comment conserver l'avantage du label "statique" tout en étant capable de déboguer le code de production sur place ?
Il n'arrive pas qu'un comportement involontaire se produise sur le site du client, et seulement là . Dans de nombreux cas, la possibilité d'effectuer un débogage peut permettre d'économiser beaucoup d'efforts et d'obtenir une réponse très rapide. Un tel débogage implique généralement de vérifier le comportement de la fonction, ce qui nous amène à la définition "statique".
Les fonctions statiques ne peuvent pas être déboguées à partir d'un shell de débogage, par exemple en plaçant des points d'arrêt ou en les exécutant. D'autre part, définir toutes les fonctions comme publiques entraîne des problèmes de structure et d'optimisation du code.
Je suis conscient de l'existence d'options telles que la compilation d'au moins deux versions différentes, l'une avec statique et l'autre sans, mais cela convient bien aux tests d'automatisation, et non à la version finale de production qui sera finalement publiée.
J'apprécierais que vous me donniez votre avis, notamment sur la manière dont vous avez résolu (le cas échéant) ce dilemme. Ou en reformulant la question comme suit : " Qu'est-ce qui est le plus important ? "
Une bonne discussion sur les "statiques" en C aquí .