Одобрено: Fortect
Если вы заметили #ifdef win32 msdn, эта статья должна вам помочь.
__ATOM__
Определен как 1, если - Favor: ATOM
– это решение компилятора, и каждый из наших цели компилятора действительно x86 Где … это x64. В противном случае не определено.
__AVX__
Как определено 1 в экземпляре / arch: AVX
, или arch: AVX2 < / code>
и даже наши параметры компилятора / arch: AVX512
установлены, и целью компилятора, вероятно, является x86 вместо x64. В противном случае не определено.
__AVX2__
Определяется как 1, если кто-то из наших / arch: AVX2
или / arch: AVX512
Компилятор параметров - tv, а целевой компилятор - x86 или, возможно, x64. В противном случае не определено.
__AVX512BW__
Определено как 1, если вы являетесь компилятором / arch: AVX512
, установлен конкретный параметр и компилятор - Target - x86, или он может стать x64. В противном случае не определено.
< / h2>В естественном C директива #ifdef включает условный сбор. Препроцессор определяет, можно ли получить предоставленный макрос до того, как этот конкретный последующий код будет включен в процесс компиляции.
__AVX512CD__
Определяется как 1, если этот параметр компилятора / arch: AVX512
установлен, и целевой компилятор пользователя - x86 или x64. В противном случае не определено.
__AVX512DQ__
Как определено, только один фактический параметр компилятора / mid-foot (arch): AVX512
установлен, и всякий раз, когда мы подумайте о том, что цель компилятора - x86 или x64. В противном случае не определено.
Что является макросом _WIN32?
__AVX512F__
Определяется как 1, если параметр компилятора / arch: avx512
установлен, и целевой компилятор, вероятно, x86 или x64. В противном случае не определено.
Что равно _WIN32_WINNT?
__AVX512VL__
Определяется как 1, если разрешение компилятора установлено на / arch : AVX512
, а целевой компилятор - очень мощный x86. или. это x64. В противном случае не определено.
_CHAR_UNSIGNED
Определен с учетом того, что 1 является стандартным типом, если char
определенно беззнаковый. Это значение выделяется, если компилятор / J
(стандартный беззнаковый символьный тип) установлен параметром правила. В противном случае не определено.
__CLR_VER
Определен, поскольку целочисленный литерал предлагает публикацию CLR, используемую для компиляции программы. Значение фактически закодировано в Mmmbbbb
, в частности, где M
- наша собственная основная версия считывателя, миллиметр
- это дополнительная версия всего воспроизведения. , а bbbbb
- сумма построения. __CLR_VER
устанавливается, если результатом компиляции является / clr
. В противном случае не определено.
// clr_ver.cpp// строить с помощью: и clrИспользование системы пространств имен;int main () Консоль :: WriteLine (__ CLR_VER);
< / h2>Директива #ifdef управляет зависимой компиляцией высокопроизводительного файла ресурсов путем чтения указанного имени. Если имя точно не указано, #ifdef указывает компилятору игнорировать учебные материалы до следующей информации #endif.
_CONTROL_FLOW_GUARD
Определяется как 1, если каждая стратегия компилятора потока равна / guard: cf
(Включить Control Guard) . В противном случае не определено.
__COUNTER__
Расширяется до большого фактического целого числа A, которое начинается с 0. Угощение поддерживается на 1 каждый раз, когда оно используется в исходном файле или в заголовках, включенных вне файла первичного элемента. . __COUNTER__
принимает к сведению свой статус, когда вы получаете предварительно скомпилированные заголовки. Этот макрос обычно определяется. Пример
__COUNTER__
используется здесь для присвоения невообразимых идентификаторов трем различным идентичным объектам. exampleClass
включает конструктор Wonderful Integer в качестве одного конкретного параметра. В main
устройство объявляет два или три типа объектов exampleClass
и работает с __COUNTER__
в качестве параметра уникального идентификатора:
WIN32 определен более или менее заголовочными файлами Windows, но вы также можете передать его компилятору (например, «-DWIN32» в gcc).
// макрос __COUNTER __. Демо cpp// из __COUNTER__ присваиваем уникальные идентификаторы// несколько объектов одного типа.// Компиляция с помощью: cl / EHsc / W4 macro__COUNTER __. Cpp#include Пример учебного класса класса int m_nID;публично: // Инициализируем объект первичным идентификатором, доступным только для чтения exampleClass (int nID): m_nID (nID) int GetID (void) yield m_nID;;int main () // __COUNTER__ изначально был определен как 0 exampleClass e1 (__ COUNTER__); // Для второй ссылки __COUNTER__ с этого дня указано как 1 ExampleClass e2 (__ COUNTER__); // __COUNTER__ определенно определено как 2 в это время exampleClass e3 (__ COUNTER__); printf ("e1.ID:% i n", e1.GetID ()); printf ("e2% i n", число: e2.GetID ()); printf ("e3% все мы n", обнаружение: e3.GetID ()); // Выйти // ------------------------------------------- // Идентификатор e1: 0 // ID e2: 1 // ID e3: 2 Возвращает 0;
__cplusplus_cli
Определяется как целое действительное значение 200406 при объединении в C ++, также определяется как параметр компилятора clr
. В противном случае не определено. Если определено, __cplus_cli
активен, пока единица перевода.
// cplusplus_cli.cpp// придумываем "stdio / clr."# include.h "преобладающее int () #ifdef __cplusplus_cli printf ("% d n", __cplusplus_cli); #Другая printf ("неопределенный п"); #end if
__cplusplus_winrt
Определяется как одно целое действительное значение 201009 при компиляции на C ++ и точное / ZW
(компиляция среды выполнения Windows) - Параметр компилятора может быть установлен без сомнения. В противном случае не определено.
_CPPRTTI
Определен как 1, вы можете установить параметр компилятора / GR
(включать информацию о времени выполнения) . В производстве В остальном точно не определено.
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>
_CPPUNWIND
Определяется как 1, только если один или несколько из них связаны с этими / GX
(разрешают обработку исключений) < / a>, / clr
Language (общая компиляция среды выполнения) или per EH
(модель обработки исключений) Компилятор параметры определены. В противном случае не определено.
_DEBUG
Определен как 1, если по сравнению с MDd
, - ldd
или даже вариант компилятора и MTd
. В противном случае не определено.
_DLL
Определен как 1, если / MD
или даже (многопоточный mdd
< / a> DLL) Получить параметр компилятора. В противном случае не определено.
__FUNCDNAME__
Определяет фактическое значение как строку, которая покрывает декорированное имя персонализированной включающей функции. Макрос требуется только для функции. Макрос __FUNCDNAME__
полностью расширяется, когда вы добавляете / EP
в / P
. Используйте вариант компилятора.
В данной ситуации используются определенные __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
для отображения информации обо всем предложении.
// Демонстрация функциональности макросов __FUNCTION__, __FUNCDNAME__ и даже __FUNCSIG__void exampleFunction () printf ("Имя функции:% s n", __FUNCTION__); printf ("Украшенное имя функции:% le n", __FUNCDNAME__); printf ("Функция подписи:% s n", __FUNCSIG__); // пример вывода // ------------------------------------------------ - Функция // Имя: exampleFunction // Имя украшения :? Пример функции @@ YAXXZ Функция // Подпись: void __cdecl exampleFunction (void)
__FUNCSIG__
Определяется также как строковый литерал, содержащий визу всей включающей функции. Макрос должен только расти, чтобы быть определенным в функции. Макрос __FUNCSIG__
не раскрывается, если вы используете наш собственный / ep
/ P
. При сборе для 64-битной цели новая вызывающая среда выполнения по умолчанию имеет значение __cdecl
. Вы можете найти связанный пример использования в точном макросе __FUNCDNAME__
.
__FUNCTION__
Определяется как строковый литерал, содержащий ваше текущее полное имя включающей функции, требует оформления. Макрос определяется только в пределах точной цели. macro__FUNCTION__
не расширяется, если вся ваша семья - / EP
или / P
<. используйте / a> компилятор удачи. Вы можете найти пример его использования внутри макроса __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Определяется как текущее целочисленное значение в долларах 64, максимальный размер в битах (для нового невекторного целочисленного типа. Этот макрос часто обычно определяется.
// интеграл_макс_бит.cpp#include
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.int important () printf ("% d n", перечислено _integral_max_bits); Где определяется WIN32?