8 votes

Où les paramètres utilisés pour la sortie doivent-ils être situés dans la liste des paramètres de la fonction ?

J'essaie de décider d'une politique concernant l'utilisation des paramètres de fonction pour la sortie dans notre code C/C++.

Il est clair pour moi que la politique devrait indiquer que tous les paramètres utilisés pour la sortie doivent être regroupés soit à la fin, soit au début de la liste des paramètres de la fonction, mais je ne suis pas sûr qu'il y ait de bonnes raisons de préférer l'un ou l'autre de ces emplacements.

Connaissez-vous une raison pour préférer les regrouper au début ou à la fin ?

4voto

C'est juste mon opinion personnelle, mais s'il reflète la sémantique de la copie ou de l'affectation, alors je préfère les mettre au début, tout comme le font string et certaines fonctions stdio de la bibliothèque standard du C :

strcpy(dest, src);

ressemble à

dest = src;

et

fgets(buf, sizeof(buf), file);

ressemble à

buf = contents_of(file);

Si Cependant, pour une raison quelconque ce n'est pas le cas, alors j'aime organiser les choses de façon à ce que l'entrée vienne en premier, puis la sortie, donc je mets les arguments de sortie à la fin de la liste des arguments.

3voto

Rene Points 1855

Permettez-moi de mentionner un autre point :

Les paramètres d'entrée peuvent avoir des valeurs par défaut. Pour utiliser cette fonctionnalité, ce (ou ces) paramètre(s) doit (doivent) se trouver à la fin de la liste des paramètres d'une fonction.
Par conséquent, et pour la même raison que celle déjà évoquée par l'utilisateur529758, j'ai également commencé à placer les paramètres de sortie au début de la liste des paramètres.

2voto

Jonathan Leffler Points 299946

Il existe deux écoles de pensée, illustrées par différentes fonctions dans la bibliothèque C :

Ordre de mission

memmove(target, source, size);

Entrée puis sortie

sscanf(source, format, &out1, &out2, &out3);

S'il y a plus d'une sortie, mettez-les généralement à la fin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X