Mettez le nom des parameters dans les prototypes de la fonction C?

Lors de la déclaration de fonctions en C, vous devez définir un prototype dans lequel vous n’avez pas besoin d’écrire le nom des parameters. Juste avec son type suffit.

void foo(int, char); 

Ma question est la suivante: est-ce une bonne pratique d’inclure également des noms de parameters?

    Oui, il est considéré comme une bonne pratique de nommer les arguments même dans les prototypes.

    Vous aurez généralement tous vos prototypes dans le fichier d’en-tête, et l’en-tête peut être la seule chose que vos utilisateurs peuvent inspecter. Par conséquent, le premier niveau de documentation de votre API est d’avoir des noms d’argument significatifs.

    De même, les commentaires sur le rôle des fonctions (et non sur la manière dont elles sont implémentées, bien sûr) doivent figurer dans l’en-tête, avec leurs prototypes.

    Un fichier d’en-tête bien écrit peut être la partie la plus importante de votre bibliothèque!


    Curieusement, la constance des arguments est un détail d’implémentation. Donc, si vous ne modifiez pas une variable argument dans votre implémentation, ne mettez que const dans l’implémentation:

     /* Header file */ /* Computes a thingamajig with given base * in the given number of steps. * Returns half the thingamajig, or -1 on error. */ int super_compute(int base, int steps); 

     /* implementation file */ #include "theheader.h" int super_compute(const int base, int steps) { int b = 2 * base; while (--steps) { b /= 8; } /* no need for a local variable :-) */ return -1; } 

    Je recommande vivement d’inclure les noms des parameters. Si vous écrivez une bibliothèque, il est certainement utile pour ceux qui l’utiliseront de savoir ce que fait une fonction à partir de son prototype dans vos fichiers d’en-tête. Considérez memcpy par exemple. Sans les noms des parameters, vous seriez perdu à savoir quelle est la source et quelle est la cible. Enfin, il est plus facile d’inclure les noms que de les supprimer lorsque vous copiez la définition de votre fonction pour la transformer en prototype. Si vous conservez les noms, il vous suffit d’append un point-virgule à la fin.

    Certains IDE et éditeurs extrairont les informations de prototype des fichiers d’en-tête et fourniront les informations de parameters sous forme d’indications lors de la frappe. Si les noms sont disponibles, cela permet d’écrire du code plus rapidement (et d’éviter certains bugs).