0
votes

Est-il correct d'avoir des paramètres inutilisés dans les fonctions C?

Est-il correct de laisser les paramètres inutilisés? J'essaie d'exécuter la fonction comme ceci:

error: too few arguments to function ‘void encoder(int, FILE*, FILE*)’
         encoder();```

c

4 commentaires

J'ai besoin de pouvoir exécuter un codeur directement à partir d'un autre programme de mon projet. Aussi devrait être conçu?


Vous devez clarifier votre question.


Désolé pour mon mauvais anglais!


@Richard Votre anglais est parfaitement parfait. Mais vous n'avez pas très bien expliqué le problème. Avec si peu d'informations, il est impossible de répondre à votre question. Je pourrais dire qu'il y a des situations où il est parfaitement correct de ne pas utiliser les arguments, mais je ne peux pas dire si l'une de ces situations s'applique ici.


3 Réponses :


0
votes

Il vaut mieux ouvrir des fichiers et lire tout le contenu et aller aux variables. Donc, vous pouvez libérer (fermer) le fichier et la danse. Après fermer le fichier, créez librement des choses.


1 commentaires

Certains moments, je devrai exécuter un codeur () sans passer quelque chose



1
votes

est-ce correct d'avoir des paramètres inutilisés en fonction C?

Oui.

Néanmoins, pourquoi ne pas avoir codeur () Prendre deux Fichier * au lieu des noms, alors do (pseudo code): xxx


3 commentaires

J'ai aussi besoin de pouvoir exécuter un codeur () directement à partir d'un autre programme pour lire / écrire stdin / out


@Richard: Comment appeleriez-vous une fonction d'un autre programme? Ou voulez-vous dire "code" au lieu de "programme", où ce dernier que j'ai considéré comme compilé du code.


Je veux dire un autre fichier dans mon projet. Peut-être que tout le projet Clion est un programme? Désolé pour mon mauvais anglais. J'ai un test de test où je dois exécuter un codeur () à lire depuis STDIN et faire un certain fichier / décodage.



1
votes

Pour répondre à la question générale dans le titre - Oui, il est correct de ne pas utiliser tous les paramètres transmis à une fonction, bien que cela puisse être déroutant pour les futurs mainteneurs.

Pour ce cas particulier, au lieu de passer un compte d'argumentation Je vous recommande d'utiliser des noms spéciaux pour les fichiers d'entrée et de sortie pour indiquer des flux standard. C'est une convention commune entre * Nix Command Line Utilities à utiliser "-" pour spécifier la lecture à partir d'une entrée standard: xxx

la commande ci-dessus jolie imprime certains XML, puis transmet la version jolie imprimée à VI à éditer (quelque chose que j'ai eu à faire beaucoup ces derniers temps). Donc au lieu de passer un argc , il suffit de transmettre les noms de fichiers et de les examiner pour déterminer quoi faire: xxx

de cette façon de ne quitter aucune paramètres "inutilisés".


0 commentaires