J'ai créé un wrapper pour la fonction strncpy.Où mettre un code réutilisable
Je vais devoir l'utiliser dans mon projet qui contient de nombreux en-têtes et fichiers sources (environ 20 tous ensemble). Et cette enveloppe sera utilisée dans la plupart d'entre eux. Comme le code est très court, je me demande où est la meilleure façon de mettre en œuvre cette enveloppe dans mon projet?
Je pense que cela pourrait être utile d'avoir ceci dans un en-tête appelé utilities.h. Et inclure cet en-tête dans chaque fichier source qui en a besoin?
Et peut-être aussi de futurs projets? Je suis nouveau au programme C, alors je cherche juste de bons conseils sur ce problème.
Un grand merci,
/* Null terminate a string after coping */
char* strncpy_wrapper(char *dest, const char* source,
const size_t dest_size)
{
strncpy(dest, source, dest_size);
/*
* If the destination is greater than zero terminate with a null.
*/
if(dest_size > 0)
{
dest[dest_size - 1] = '\0';
}
return dest;
}
Juste une question rapide. Comme c'est juste une fonction qui est petite. Dois-je en-tête (utilities.h) avec la déclaration de ma fonction et un fichier source (utilities.c) pour la définition? – ant2009
Habituellement, vous mettez le code dans un fichier .c et la déclaration (signature de la fonction) dans le fichier .h. De cette façon, vous n'avez pas besoin d'expédier le code source (le code compilé est suffisant). Pour une petite fonction, c'est bizarre, mais lorsque les projets se développent, vous ne compilez que ce qui est nécessaire et pas tous les fichiers source, ce qui peut augmenter considérablement le temps de compilation. – Burkhard