Supposons que j'ai une fonctionLa signature de char est-elle un problème d'interface?
void foo(char *)
qui, en interne, doit traiter son entrée comme un bloc de terminaison NUL octets (par exemple, il est une fonction de hachage sur les chaînes). Je pourrais jeter l'argument à unsigned char*
dans la fonction. Je pourrais aussi changer la déclaration
void foo(unsigned char *)
Maintenant, étant donné que char
, signed char
et unsigned char
sont three different types, ce serait un changement constitue l'interface, en vertu de toute définition raisonnable du terme « interface » en C?
(Cette question est destinée à régler une discussion soulevée par une autre question. J'ai mes opinions, mais n'acceptera pas une réponse jusqu'à ce que l'on vient comme un « gagnant » par les votes des autres.)
Pourquoi avez-vous tagué ceci avec C++ si vous posez simplement la question pour C? –
Balise C++ supprimée. – Puppy
@DeadMG: Battez-moi! ':)' – sbi