Approuvé : Fortect
Si vous avez reconnu #ifdef win32 msdn, cet article peut vous aider.
__ATOM__
Défini exactement comme 1 si / Faveur : ATOM
est une option du compilateur et chacun est lié avec nos cibles de compilateur est x86 Où … c’est généralement x64. Sinon indéfini.
__AVX__
Tel que défini 1 si / la posture : AVX
, / arch : AVX2
et même les suggestions du compilateur / arch: AVX512
sont sélection et la cible du compilateur est x86 à la place avec x64. Sinon indéfini.
__AVX2__
Défini comme 1 si l’un des concernant notre / arch : AVX2
ou même un / arch: AVX512
Le compilateur de plans est tv et le compilateur cible a été x86 ou éventuellement x64. Sinon indéfini.
__AVX512BW__
Défini étant donné que 1, si vous êtes le compilateur versus arch : AVX512
, l’option doit être définie et le compilateur – La cible est presque certainement x86, ou cela pourrait être x64. Sinon indéfini.
< /h2>En C natif, le type de directive #ifdef permet la compilation conditionnelle. Le préprocesseur décide si une macro fournie existe avant que le code suivant sélectionné ne soit inclus dans le processus de collecte.
__AVX512CD__
Défini comme 1 si tout cela / arch : AVX512
La méthode du compilateur est définie et la cible du compilateur est presque certainement x86 ou x64. Sinon indéfini.
__AVX512DQ__
Comme défini 1 si l’option de compilateur valide / arch : AVX512
est sans jeu de questions et la cible globale du compilateur est considérée comme être x86 ou x64. Sinon indéfini.
Quoi est la macro _WIN32 ?
__AVX512F__
Défini comme 1 si le choix judicieux du compilateur / arch : avx512
est un programme et la cible du compilateur est x86 ou x64. Sinon indéfini.
Quoi va être _WIN32_WINNT ?
__AVX512VL__
Défini comme vous si la résolution du compilateur est définie, ce qui peut < code> / arch: AVX512 et chacun de nos compilateurs cibles est un x86 très puissant. ou. il a x64. Sinon indéfini.
_CHAR_UNSIGNED
Défini parce que 1 est un autre type standard si char
est entièrement non signé. Cette valeur est définie si le compilateur réel / J
(type de disposition standard non signé) est défini dans le paramètre ruin. Sinon indéfini.
__CLR_VER
Défini car un littéral entier représente la bible CLR utilisée pour compiler l’application. La valeur est toujours en fait codée dans Mmmbbbb
, en particulier là où M
est la version principale du lecteur, mm
est la version compacte du l’intégralité de l’exécution, et bbbbb
– la somme de construction. __CLR_VER
est probablement défini si la réponse du compilateur est per clr
. Sinon indéfini.
// clr_ver.cpp// construire avec : /clrUtilisation d'un nouveau système d'espace de noms ;int main () Console :: WriteLine (__ CLR_VER);
< /h2>La directive #ifdef contrôle la compilation conditionnelle de tout type de fichier de ressources hautes performances en vérifiant la marque spécifiée. Si le nom n’est pas spécifié, #ifdef indique au compilateur d’ignorer les instructions jusqu’à l’information future #endif.
_CONTROL_FLOW_GUARD
Défini comme si chaque routine du compilateur de flux était - guard : cf
(Enable Control garde) . Sinon indéfini.
__COUNTER__
Se développe en un grand entier littéral A qui commence autour de 0. Le traitement est augmenté de 1 à chaque fois qu’il est utilisé dans le rapport source ou dans les en-têtes inclus à partir de l’aspect principal déposer. __COUNTER__
se souvient de son statut à chaque fois que vous recevez des en-têtes précompilés. Cette macro est en règle générale définie. Exemple
__COUNTER__
est utilisé ici pour attribuer des identifiants extraordinaires à trois une gamme d’objets identiques. exampleClass
utilise le constructeur Wonderful Integer comme paramètre. Dans le plus essentiel
, l’appareil déclare trois types avec les objets exampleClass
et utilise __COUNTER__
considérant que le paramètre d’identifiant unique :
WIN32 est défini autour des informations d’en-tête Windows, mais vous pouvez également les transmettre souvent au compilateur (par exemple, “-DWIN32” pour gcc).
// macro __COUNTER __. Démo cpp// à partir de __COUNTER__ nommez des identifiants uniques// plusieurs objets du même type précis.// Compilation avec : cl / EHsc / W4 macro__COUNTER __. Cpp#include Exemple de classe classe int m_nID ;publiquement: // Initialiser ces objets avec un identifiant unique en lecture seule exampleClass (int nID) : m_nID (nID) int GetID (void) return m_nID;;int considérable () // __COUNTER__ est initialement classé comme 0 exempleClasse e1 (__ COUNTER__); // Pour le lien également __COUNTER__ est maintenant répertorié en raison du fait 1 ExempleClasse e2 (__ COUNTER__); // __COUNTER__ est défini comme non pas un mais deux à ce moment exempleClasse e3 (__ COUNTER__); printf ("e1.ID:% mon partenaire et i n", e1.GetID ()); printf ("e2% i n", #: e2.GetID ()); printf ("e3% i n", diagnostic : e3.GetID ()); // Se déconnecter // -------------------------------------------- // Identifiant e1 : 0 // ID e2 : 1 // ID e3 : 2 Renvoie 0 ;
__cplusplus_cli
Défini comme tout type de valeur réelle entière 200406 lorsqu’il est compilé en C ++, également défini en tant que compilateur / clr
option. Sinon indéfini. Si défini, __cplus_cli
est actif dans l’élément de traduction.
// cplusplus_cli.cpp// compiler avec "stdio et clr."# inclure.h "int main () #ifdef __cplusplus_cli printf ("% et n", __cplusplus_cli); #une autre printf ("undefined n"); #fin si
__cplusplus_winrt
Défini comme un entier réel évaluer 201009 lorsqu’il est compilé en C++ et certains / ZW
(compilation de Windows Runtime) – L’option du compilateur est définie sans aucun doute. Sinon indéfini.
_CPPRTTI
Défini comme 1, vous pouvez définir l’option de compilation d’une personne / GR
(inclure les informations de lecture) . En production Sinon non défini.
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
_CPPUNWIND
Défini comme 1 un si un ou plusieurs de ces versus GX
(autoriser la gestion des exceptions) , / clr
Langage (compilation générale des enseignements) ou / EH
(exception modèle de finalisation) Le compilateur les options sont comprises. Sinon indéfini.
_DEBUG
Défini comme 1 si / MDd
, / ldd
probablement peut-être même que l’option du compilateur / MTd
est définie. Sinon indéfini.
_DLL
Défini comme 1 doit-il être / MD
ou parfois même (multithread / mdd < /code >
DLL) Obtenez l'option du compilateur. Sinon indéfini.
__FUNCDNAME__
Définit le plaisir réel comme une chaîne qui contient le nom orné de la fonction inclusive de la personne. La macro n'est requise que dans une fonction. La macro __FUNCDNAME__
se développe vraiment lorsque vous devez ajouter / EP
dans / P
Utilisez une sorte de compilateur d'options.
Cet exemple utilise des __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
spécialisés afin d'afficher des informations sur l'offre.
// Démonstration de toutes les fonctionnalités des macros __FUNCTION__, __FUNCDNAME__ et juste __FUNCSIG__void exampleFunction () printf ("Nom de la fonction :% s n", __FUNCTION__); printf ("Nom de la fonction décorée :% s n", __FUNCDNAME__); printf ("Fonction de signature : % après l'heure n", __FUNCSIG__); // sortie d'occasion // ------------------------------------------------ - Fonction // Nom : exampleFunction // Nom de la fonction à décorer :? Exemple @@ Fonction YAXXZ Fonction // Signature : void __cdecl exampleFunction (void)
__FUNCSIG__
Défini même comme un littéral à chaîne contenant le visa de l'intention englobante. Une macro ne doit être définie que dans une fonction majeure. La macro __FUNCSIG__
ne se développe certainement pas si vous utilisez les et ep
/ P
. Lorsqu'ils sont accumulés pour une cible 64 bits, les non-paiements d'exécution d'appel à __cdecl
. Vous pouvez trouver tous les exemples d'utilisation associés dans la macro __FUNCDNAME__
.
__FUNCTION__
Défini par rapport à un littéral de chaîne contenant la balise pleinement qualifiée de la fonction englobante, sans décoration. La macro n'est définie que dans la cible. macro__FUNCTION__
ne se développe pas si tous vos enfants sont / EP
avec / P
<. utiliser et a> bonne chance compilateur. Vous pouvez trouver un exemple puissant de son utilisation dans la macro __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Défini comme la valeur entière actuelle 64, taille globale maximale en bits (in pour une classe entière non vectorielle. Cette macro est souvent toujours définie.
// intégral_max_bit.cpp#include
Accélérez les performances de votre ordinateur dès maintenant avec ce simple téléchargement.int main () printf ("% d n", défini avec l'aimable autorisation de _integral_max_bits); Où a été défini WIN32 ?< /h2>