J'ai lu le fichier Par exemple, il y a cette ligne: p> stdio.h code> et je suis confus.
fichier * code> signifie le type de retour et j'ai trouvé que
_crtimp code> est constant, défini comme p>
__ cdecl code>,
__ mingw_nothrow code>)? P> p>
4 Réponses :
De même, Je suppose que le __mingw_nothrow macro est un synonyme de l'attribut GCC __ DeclSpec (dllimport) code> indique au compilateur que cette fonction doit être importée à partir d'une DLL, c'est une extension spécifique à Windows. Voir Cette page pour plus de détails. P>
__ CDECL code> est un attribut qui spécifie que la fonction utilise une convention d'appel particulière (nommément celle utilisée par c). Voir Cette page . P >
NOTHROW code>, qui informe le compilateur que la fonction en question ne peut pas lancer d'exceptions. Voir le Documentation pour plus de détails. P>
Les thèses sont des déclarations spécifiques à l'environnement ou au compilateur que vous utilisez. P>
__ beClSpec (dllimport) code> indique, sous Windows, que cette fonction est dans une DLL et doit être placée dans la table d'importation du fichier PE exécutable généré. LI>
- Le
__ CDECL code> Indiquez une convention d'appel C standard C et modifiera la manière dont le compilateur transforme la fonction pour être conforme à cette convention appelante. li>
-
__ mingw_nothrow code> est spécifique à votre compilateur et pourrait désactiver la prise en charge de l'exception. LI>
ul>
Dans tous les cas, il doit y avoir une explication dans la documentation de votre compilateur. P>
Notez que tous ceux-ci ne sont pas des attributs C standard, mais des trucs spécifiques du compilateur / de la plate-forme. Encore une fois, en général, vous ne devriez pas vous inquiéter d'eux, ils sont tenus de faire fonctionner le CRT bien, mais aussi longtemps que vous ne construisez pas les bibliothèques, vous pouvez vous éloigner sans rien savoir d'eux. __ DeclSpec (dllimport) code> Spécifie que la fonction doit être importée à partir d'une DLL distincte; Je suppose que, selon les paramètres de liaison statiques / dynamiques CRT, il est défini de différentes manières. P>
__ CDTECL code> est la convention d'appel utilisée pour la fonction; La convention appelante indique au compilateur comment la fonction s'attend à être appelée (dans laquelle les paramètres d'ordre sont enfoncés sur la pile, si un registre est utilisé pour les paramètres, où la valeur de retour est stockée, qui est responsable du nettoyage de la pile, ... ); En général, vous ne devriez pas m'en soucier tant que vous n'édentifoiez pas les bibliothèques. P>
__ mingw_nothrow code> est
#define code> d pour étendre à
__ attribut__ (((__Nothrow __)) code>, qui est une extension spécifique MingW qui indique à la compilateur que la fonction ne lancera pas d'exceptions; Cela permet au compilateur d'effectuer certaines optimisations. P>
:) code> p>
Vous devez consulter Le premier indique au compilateur d'utiliser le CDECL x86 Convention d'appel ( Voir le manuel de la GCC ), ce dernier La fonction est garantie de ne pas lancer des exceptions c ++ ( Voir Manuel GCC ). P> _mingw.h code> et le manuel GCC < / a>: dans le cas de GCC - ou tout autre compilateur prenant en charge
__ gnuc __ code> - Les définitions suivantes s'appliquent:
__ DeclSpec (dllimport) code> est nécessaire pour créer des travaux de liaison dynamiques ( Voir Manuel GCC ). P> P>