Existe-t-il un moyen d'être averti de l'absence d'appariement des noms d'arguments entre une déclaration de fonction et sa définition?C++ Comment avertir de la différence entre les noms d'arguments dans la déclaration de fonction et la définition
Déclaration
double divide(int a, int b);
Définition
double divide(int b, int a)
{
return a/b;
}
Pour un utilisateur, qui utilisent la fonction divide
s'attendront a/b en conséquence et non b/a.
Je sais, le compilateur ne peut pas faire cela, mais y a-t-il des outils d'analyse statique qui peuvent le faire? Si oui, lesquels?
arguments sont positionnels seulement en C. J'ai testé avec «-Wall» et pas de chance BTW. –
Pour la simple raison que si quelqu'un ne sait pas comment la fonction est déclarée, elle pourrait en obtenir des résultats inattendus. Par exemple a/b! = B/a – lucab0ni
bien sûr, c'est un vrai problème. Mais en C cela ne peut pas être fait. Je suis sûr que certains analyseurs de code comme ClokWork ou Logiscope proposent de telles vérifications. –