Question

À l'adresse suivante: https://developer.mozilla.org/en/XPCOM_Interface_Reference/ nsICacheVisitor est le bloc de code suivant:

boolean visitDevice(in string deviceID, in nsICacheDeviceInfo deviceInfo);

Je pensais avoir affaire à c ++, mais "dans" n'est pas un mot clé c ++ d'après les listes de mots clés c ++ que j'ai consultées, ni un mot clé java. Alors à quoi sert-il et qu'est-ce que cela signifie?

Était-ce utile?

La solution

Cela signifie que le paramètre est un paramètre d'entrée, ce qui signifie qu'il sera utilisé mais non modifié par la fonction.

L'opposé d'un paramètre in est un paramètre out , ce qui signifie que le paramètre va être modifié, mais pas explicitement renvoyé. Si vous deviez utiliser un paramètre out après une méthode qui l'utilise, la valeur sera (potentiellement) différente.

Comme l'indiquent nos commentaires dans le commentaire, la page à laquelle vous êtes lié décrit un fichier .idl ou langage de définition d'interface. Je ne connais pas bien le langage IDL utilisé par Mozilla (mais si vous souhaitez en savoir plus, vous pouvez en savoir plus sur ici ), mais je connais un peu le langage IDL du groupe de gestion d'objets, qui indique que les paramètres dans sont appelés valeur par appel, les paramètres out sont appelants. Les paramètres -by-result et inout sont des appels par valeur / result.

Autres conseils

La langue utilisée est le langage de description d'interface (XPIDL) de Mozilla. Le mot clé " dans " est décrit ici: ici

J'ai vu des frameworks / SDK pour C / C ++ qui définissent des macros pour indiquer si un paramètre est destiné à l'entrée, à la sortie ou aux deux. Je suppose que c'est ce qui se passe dans votre exemple.

Par exemple, le DDK Windows le fait pour IN OUT et INOUT (si je me souviens bien). Lorsque la compilation de ces macros est définie sur zéro, elles peuvent potentiellement être définies comme utiles pour d'autres outils (comme un compilateur IDL ou un outil d'analyse statique). Je ne suis pas sûr qu’ils utilisent encore ces macros dans les kits DDK les plus récents.

Microsoft a poussé cette idée à l'extrême avec les macros SAL qui permettent un contrôle très précis du comportement attendu d'un paramètre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top