Макрос си: Макросы в Си: как, когда и зачем?

Макросы (C/C++) | Microsoft Learn

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Препроцессор расширяет макросы во всех строках, кроме директив препроцессора, строк с первым символом # без пробела. Он расширяет макросы в некоторых директивах, которые не пропускаются в рамках условной компиляции. Директивы условной компиляции позволяют подавлять компиляцию частей исходного файла. Они проверяют константное выражение или идентификатор, чтобы определить, какие текстовые блоки передаются компилятору, и какие из них следует удалить из исходного файла во время предварительной обработки.

Директива #define обычно используется для связывания понятных идентификаторов с константами, ключевыми словами и часто используемыми операторами или выражениями. Идентификаторы, представляющие константы, иногда называются символьными константами или константами манифеста. Идентификаторы, представляющие инструкции или выражения, называются макросами

. В этой документации препроцессора используется только термин «макрос».

Если имя макроса распознается в исходном тексте программы или в аргументах некоторых других команд препроцессора, оно рассматривается как вызов этого макроса. Имя макроса заменяется копией тела макроса. Если макрос принимает аргументы, фактические аргументы после имени макроса заменяются на формальные параметры в теле макроса. Процесс замены вызова макроса обработанным копированием текста называется расширением вызова макроса.

На практике это означает, что существует два типа макросов. Макросы, подобные объекту, не принимают аргументы. Макросы, подобные функциям, можно определить для приема аргументов, чтобы они выглядели и действовали как вызовы функций. Поскольку макросы не создают фактические вызовы функций, иногда можно ускорить выполнение программ, заменив вызовы функций макросами. (В C++встроенные функции часто являются предпочтительным методом.) Однако макросы могут создавать проблемы, если вы не определяете и не используете их с осторожностью. Возможно, потребуется использовать круглые скобки в определениях макроса с аргументами, чтобы сохранить правильный приоритет в выражении. Кроме того, макросы могут неправильно обработать выражения с побочными эффектами.

Дополнительные сведения см. в getrandom примере директивы #define.

После определения макроса его нельзя переопределить в другое значение, не удаляя исходное определение. Однако макрос можно переопределить точно таким же определением. Таким образом, одно и то же определение может отображаться несколько раз в программе.

Директива #undef удаляет определение макроса. После удаления определения можно переопределить макрос на другое значение. Директива #define и директива #undef обсуждают

#define и #undef директивы соответственно.

Дополнительные сведения см. в следующих разделах:

  • Макросы и C++

  • Макрос со списками аргументов переменных

  • Предустановленные макросы

Справочник по препроцессору в C/C++

Macro Gracey 5/6 — LM-Dental

EN Instrument for dental professionals, clean and sterilize before use max. 180°C/356°F. Handle with integrated LM DTS™ RFID tag, clean and sterilize before use in max. 134°C/273°F. BG Инструмент за стоматолози, почистете и стерилизирайте преди употреба при максимална температура 180°C/356°F. Дръжка с вградена маркировка LM DTS™ RFID, почистете и стерилизирайте преди употреба при максимална температура 134°C/273°F.CS Nástroj určený pro zubní lékaře. Před použitím jej vyčistěte a sterilizujte při maximální teplotě 180°C/356°F. Rukojeť s integrovaným označením RFID LM DTS™, před použitím ji vyčistěte a sterilizujte při maximální teplotě 134°C/273 °F. DA Instrument til tandlæger og tandplejere. Rengøres og steriliseres inden brug ved maks. 180°C/356°F. Håndtag med integreret LM DTS™ RFID-mærke. Rengøres og steriliseres inden brug ved maks. 134°C/273°F. DE Instrument für zahnmedizinisches Fachpersonal. Vor Gebrauch reinigen und bei max. 180°C/356°F sterilisieren. Griff mit integriertem LM DTS™ RFID-Tag; vor Gebrauch reinigen und bei maximal 134 °C/273 °F sterilisieren. EL EL Εργαλείο για επαγγελματίες οδοντιάτρους. Να καθαρίζεται και να αποστειρώνεται πριν από τη χρήση σε μέγιστη θερμοκρασία 180°C/356°F. Λαβή με ενσωματωμένη ετικέτα LM DTS™ RFID. Να καθαρίζεται και να αποστειρώνεται πριν από τη χρήση σε μέγιστη θερμοκρασία 134°C/273°F. ES Instrumento para profesionales de la odontología; limpiar y esterilizar antes de su uso a una temperatura máx. de 180 °C/356 °F. Mango con etiqueta RFID integrada para el LM DTS™; limpiar y esterilizar antes de su uso a una temperatura máx. de 134 °C/273 °F. ET Hambaravispetsialistide jaoks mõeldud instrument, enne kasutamist puhastada ja steriliseerida temperatuuril kuni 180°C/356°F. Käsitseda koos integreeritud sildiga LM DTS™ RFID, enne kasutamist puhastada ja steriliseerida temperatuuril maksimaalselt 134°C/273 °F. FI Hammaslääketieteen ammattilaisille tarkoitettu instrumentti, puhdistettava ja steriloitava ennen käyttöä enint. 180°C/356°F. Kahva, jossa kiinteä LM DTS™ -RFID-merkintä, puhdistettava ja steriloitava ennen käyttöä enint. 134°C/273 °F. FR Instrument destiné aux professionnels dentaires. Avant utilisation, nettoyer et stériliser à une température maximale de 180 °C/356 °F. Manche à étiquette RFID LM DTS™ intégrée, nettoyer et stériliser avant utilisation à une température max. de 134 °C/273 °F. HR Instrument za stomatološke stručnjake, prije uporabe očistite i sterilizirajte pri temperaturi od maks. 180 °C/356 °F. Ručka s integriranim RFID čipom sustava LM DTS™, prije uporabe očistite i sterilizirajte pri temperaturi od maks. 134 °C/273 °F. HU Eszköz fogorvosok számára; használat előtt tisztítandó és legfeljebb 180 ⁰C-on (356 ⁰F) sterilizálandó. Fogantyú, integrált LM DTS™ RFID címkével; használat előtt tisztítandó és legfeljebb 134 °C-on (273 °F) sterilizálandó. IT Strumento per personale odontoiatrico qualificato. Pulire e sterilizzare prima dell’uso a max. 180 °C/356 °F. Impugnatura con tag RFID LM DTS™ integrato. Pulire e sterilizzare prima dell’uso a temperatura massima di 134 °C/273 °F. LT Gydytojams odontologams skirtas instrumentas. Nuvalyti ir sterilizuoti prieš naudojant maks. 180°C/356°F C temperatūroje. Rankena su integruotąja „LM DTS™ RFID“ kortele, prieš naudojant nuvalyti ir sterilizuoti maks. 134°C/273 °F temperatūroje. LV Instruments zobārstniecības speciālistiem. Pirms lietošanas notīrīt un sterilizēt temperatūrā, kas nepārsniedz 180 °C/356 °F. Rokturis ar integrētu LM DTS™ RFID atzīmi, kas pirms lietošanas ir jānotīra un jāsterilizē maks. 134 °C/273 °F temperatūrā. NL Instrument voor tandheelkundige professionals, voor gebruik reinigen en steriliseren bij een maximale temperatuur van 180 °C/356 °F. Handgreep met geïntegreerd LM DTS™ RFID-label, voor gebruik reinigen en steriliseren bij een maximale temperatuur van 134 °C/273 °F. NO Instrument for tannhelsepersonell. Rengjør og steriliser før bruk ved maks. 180°C/356°F. Håndtak med integrert LM DTS™ RFID-brikke. Rengjør og steriliser før bruk ved maks. 134°C/273 °F. PL Narzędzie stomatologiczne. Wyczyścić i wysterylizować przed użyciem w temperaturze maks. 180°C/356°F. Uchwyt ze zintegrowanym znacznikiem LM DTS™ RFID; przed użyciem wyczyścić i wysterylizować w temperaturze maks. 134°C/273°F. PT Instrumento para médicos dentistas, limpar e esterilizar antes de utilizar, a uma temperatura máxima de 180 ⁰C/356 ⁰F. Manípulo com etiqueta RFID LM DTS™ integrada, limpar e esterilizar antes de utilizar, a uma temperatura máxima de 134 °C/273 °F. RO Instrument pentru stomatologi și asistenți de medicină dentară, a se curăța și steriliza înainte de utilizare la o temperatură de max. 180 ⁰C/356 ⁰F. Manipulați cu eticheta LM DTS™ RFID integrată, curățați și sterilizați înainte de utilizare la max.134 °C/273 °F. SK Nástroj je určený pre zubárov, pred použitím ho vyčistite a sterilizujte pri maximálnej teplote 180 °C/356 °F. Rukoväť s integrovanou značkou LM DTS™ RFID, pred použitím ju vyčistite a sterilizujte pri maximálnej teplote 134 °C/273 °F. SL Instrument za zobozdravnike; pred uporabo ga očistite in sterilizirajte pri temperaturi največ 180 °C/356 °F. Držalo z integrirano RFID-oznako LM DTS™, pred uporabo ga očistite in sterilizirajte pri temperaturi največ 134 °C/273 °F. SV Instrument för tandvårdspersonal, ska rengöras och steriliseras före användning i max. 180 ⁰C/356 ⁰F. Handtag med integrerad LM DTS™ RFID-etikett, ska rengöras och steriliseras före användning i max. 134 °C/273 °F.

Made in Finland

Определения макросов командной строки в C

В этом учебном пособии объясняются определения макросов командной строки в программировании на C.

Компилятор Linux gcc предоставляет возможность определять символы в командной строке, которая инициирует компиляцию. Эта функция полезна при компиляции разных версий программы из одного и того же исходного файла. Например размер массива на машине с небольшой памятью определяется как небольшой по сравнению с машиной с большим объемом памяти. Если массив объявлен с использованием такого символа

 целое имя[ARR_SIZE]; 

ARR_SIZE можно определить в командной строке при компиляции программы. У нас есть два способа сделать это на gcc,

 -DARR_SIZE
    -DARR_SIZE=значение 

В первой форме ARR_SIZE определяется равным 1, а вторая форма определяет ARR_SIZE равным значению, указанному в командной строке. Давайте посмотрим, как мы можем использовать это в командной строке для компиляции программы,

Примечание: присоединяйтесь к бесплатным классам Sanfoundry в Telegram или Youtube0003

ads

 gcc -DARR_SIZE=100 xyz.c 

Еще одно преимущество, которое мы получаем, определяя в программе параметры параметризации, такие как размеры массива. Если бы размер массива был задан как литеральная константа или если бы массив использовался в цикле, использующем литеральную константу в качестве ограничения, этот метод не работал бы. Кроме того, всякий раз, когда указывается размер массива, он должен быть символической константой.

Компиляторы, которые предлагают определения символов из командной строки, обычно предлагают неопределение символов из командной строки. В gcc это выполняет опция -U. Например,

Пройдите пробные тесты программирования на C — по главам!
Начать тест сейчас: глава 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

 gcc -UARR_SIZE xyz.c 

Sanfoundry Global Education & Learning Series – 1000 C Tutorials.

Если вы хотите ознакомиться со всеми учебниками по C, перейдите в раздел «Учебники по C».

реклама

Следующие шаги:

  • Получите бесплатный сертификат о заслугах в программировании на C
  • Примите участие в конкурсе по сертификации программирования на C
  • Станьте лидером в программировании на C
  • Пройдите тесты по программированию на C
  • Практические тесты по главам: глава 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  • Пробные тесты по главам: глава 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Категории C, C — Препроцессор

реклама

реклама

Подпишитесь на наши информационные бюллетени (тематические). Участвуйте в конкурсе сертификации Sanfoundry, чтобы получить бесплатный Сертификат отличия. Присоединяйтесь к нашим социальным сетям ниже и будьте в курсе последних конкурсов, видео, стажировок и вакансий!

Ютуб | Телеграмма | Линкедин | Инстаграм | Фейсбук | Твиттер | Пинтерест

Маниш Бходжасиа, ветеран технологий с более чем 20-летним опытом работы в Cisco и Wipro, является основателем и техническим директором компании

Sanfoundry . Он живет в Бангалоре и занимается разработкой Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Оставайтесь на связи с ним в LinkedIn.

Подпишитесь на его бесплатные мастер-классы на Youtube и технические обсуждения в Telegram SanfoundryClasses.

Поставщики беспроводных радиочастот и ресурсы

Веб-сайт RF Wireless World является домом для поставщиков и ресурсов RF и Wireless. На сайте представлены статьи, учебные пособия, поставщики, терминология, исходный код (VHDL, Verilog, MATLAB, Labview), тесты и измерения, калькуляторы, новости, книги, загрузки и многое другое.

Сайт RF Wireless World охватывает ресурсы по различным темам, таким как RF, беспроводная связь, vsat, спутник, радар, оптоволокно, микроволновая печь, wimax, wlan, zigbee, LTE, 5G NR, GSM, GPRS, GPS, WCDMA, UMTS, TDSCDMA, Bluetooth, Lightwave RF, z-wave, Интернет вещей (IoT), M2M, Ethernet и т. д. Эти ресурсы основаны на стандартах IEEE и 3GPP. Он также имеет академический раздел, который охватывает колледжи и университеты по инженерным дисциплинам и дисциплинам MBA.

Статьи о системах на основе IoT

Система обнаружения падений для пожилых людей на основе IoT : В статье рассматривается архитектура системы обнаружения падений, используемой для пожилых людей. В нем упоминаются преимущества или преимущества системы обнаружения падения IoT. Подробнее➤
См. также другие статьи о системах на основе IoT:
• Система очистки туалетов AirCraft. • Система измерения удара при столкновении • Система отслеживания скоропортящихся продуктов и овощей • Система помощи водителю • Система умной розничной торговли • Система мониторинга качества воды • Система интеллектуальной сети • Умная система освещения на основе Zigbee • Умная система парковки на базе Zigbee • Умная система парковки на базе LoRaWAN.


Радиочастотные беспроводные изделия

Этот раздел статей охватывает статьи о физическом уровне (PHY), уровне MAC, стеке протоколов и сетевой архитектуре на основе WLAN, WiMAX, zigbee, GSM, GPRS, TD-SCDMA, LTE, 5G NR, VSAT, Gigabit Ethernet на основе IEEE/3GPP и т. д. , стандарты. Он также охватывает статьи, связанные с испытаниями и измерениями, посвященные испытаниям на соответствие, используемым для испытаний устройств на соответствие RF/PHY. СМ. УКАЗАТЕЛЬ СТАТЕЙ >>.


Физический уровень 5G NR : Обработка физического уровня для канала 5G NR PDSCH и канала 5G NR PUSCH была рассмотрена поэтапно. Это описание физического уровня 5G соответствует спецификациям физического уровня 3GPP. Подробнее➤


Основные сведения о повторителях и типы повторителей : В нем объясняются функции различных типов повторителей, используемых в беспроводных технологиях. Подробнее➤


Основы и типы замираний : В этой статье рассматриваются мелкомасштабные замирания, крупномасштабные замирания, медленные замирания, быстрые замирания и т. д., используемые в беспроводной связи. Подробнее➤


Архитектура сотового телефона 5G : в этой статье рассматривается блок-схема сотового телефона 5G с внутренними модулями 5G. Архитектура сотового телефона. Подробнее➤


Основы интерференции и типы интерференции: В этой статье рассматриваются интерференция по соседнему каналу, Электромагнитные помехи, ICI, ISI, световые помехи, звуковые помехи и т. д. Подробнее➤


5G NR Раздел

В этом разделе рассматриваются функции 5G NR (новое радио), нумерология, диапазоны, архитектура, развертывание, стек протоколов (PHY, MAC, RLC, PDCP, RRC) и т. д. Краткий справочник 5G NR Индекс >>
• Мини-слот 5G NR • Часть полосы пропускания 5G NR • БАЗОВЫЙ НАБОР 5G NR • Форматы 5G NR DCI • 5G NR UCI • Форматы слотов 5G NR • IE 5G NR RRC • 5G NR SSB, SS, PBCH • 5G NR PRACH • 5G NR PDCCH • 5G NR PUCCH • Опорные сигналы 5G NR • 5G NR m-Sequence • Золотая последовательность 5G NR • 5G NR Zadoff Chu Sequence • Физический уровень 5G NR • MAC-уровень 5G NR • Уровень 5G NR RLC • Уровень PDCP 5G NR


Руководства по беспроводным технологиям

В этом разделе рассматриваются учебные пособия по радиочастотам и беспроводным сетям. Он охватывает учебные пособия по таким темам, как сотовая связь, WLAN (11ac, 11ad), wimax, bluetooth, zigbee, zwave, LTE, DSP, GSM, GPRS, GPS, UMTS, CDMA, UWB, RFID, радар, VSAT, спутник, беспроводная сеть, волновод, антенна, фемтосота, тестирование и измерения, IoT и т. д. См. ИНДЕКС УЧЕБНЫХ ПОСОБИЙ >>


Учебное пособие по 5G — В этом учебном пособии по 5G также рассматриваются следующие подтемы, посвященные технологии 5G:
Учебник по основам 5G Диапазоны частот учебник по миллиметровым волнам Рамка волны 5G мм Зондирование канала миллиметровых волн 5G 4G против 5G Испытательное оборудование 5G Архитектура сети 5G Сетевые интерфейсы 5G NR звучание канала Типы каналов 5G FDD против TDD Нарезка сети 5G NR Что такое 5G NR Режимы развертывания 5G NR Что такое 5G ТФ


В этом учебнике GSM рассматриваются основы GSM, сетевая архитектура, сетевые элементы, системные спецификации, приложения, Типы пакетов GSM, структура кадров GSM или иерархия кадров, логические каналы, физические каналы, Физический уровень GSM или обработка речи, вход в сеть мобильного телефона GSM или настройка вызова или процедура включения питания, Вызов MO, вызов MT, модуляция VAMOS, AMR, MSK, GMSK, физический уровень, стек протоколов, основы мобильного телефона, Планирование RF, нисходящая линия связи PS и восходящая линия связи PS.
➤Читать дальше.

LTE Tutorial , описывающий архитектуру системы LTE, включая основы LTE EUTRAN и LTE Evolved Packet Core (EPC). Он предоставляет ссылку на обзор системы LTE, радиоинтерфейс LTE, терминологию LTE, категории LTE UE, структуру кадра LTE, физический уровень LTE, Стек протоколов LTE, каналы LTE (логические, транспортные, физические), пропускная способность LTE, агрегация несущих LTE, Voice Over LTE, расширенный LTE, Поставщики LTE и LTE vs LTE advanced.➤Подробнее.


RF Technology Материал

На этой странице мира беспроводных радиочастот описывается пошаговое проектирование преобразователя частоты на примере повышающего преобразователя частоты 70 МГц в диапазон C. для микрополосковой платы с использованием дискретных радиочастотных компонентов, а именно. Смесители, гетеродин, MMIC, синтезатор, опорный генератор OCXO, амортизирующие прокладки. ➤Читать дальше.
➤ Проектирование и разработка радиочастотного приемопередатчика ➤Дизайн радиочастотного фильтра ➤Система VSAT ➤Типы и основы микрополосковых ➤Основы волновода


Секция испытаний и измерений

В этом разделе рассматриваются ресурсы по контролю и измерению, контрольно-измерительное оборудование для тестирования тестируемых устройств на основе Стандарты WLAN, WiMAX, Zigbee, Bluetooth, GSM, UMTS, LTE. ИНДЕКС испытаний и измерений >>
➤Система PXI для контрольно-измерительных приборов. ➤ Генерация и анализ сигналов ➤ Измерения физического уровня ➤ Тестирование устройства WiMAX на соответствие ➤ Тест на соответствие Zigbee ➤ Тест на соответствие LTE UE ➤ Тест на соответствие TD-SCDMA


Волоконно-оптические технологии

Волоконно-оптический компонент основы, включая детектор, оптический соединитель, изолятор, циркулятор, переключатели, усилитель, фильтр, эквалайзер, мультиплексор, разъемы, демультиплексор и т. д. Эти компоненты используются в оптоволоконной связи. ИНДЕКС оптических компонентов >>
➤Руководство по оптоволоконной связи ➤APS в SDH ➤Основы SONET ➤ Структура кадра SDH ➤ SONET против SDH


Поставщики беспроводных радиочастотных устройств, производители

Сайт RF Wireless World охватывает производителей и поставщиков различных радиочастотных компонентов, систем и подсистем для ярких приложений, см. ИНДЕКС поставщиков >>.

Поставщики ВЧ-компонентов, включая ВЧ-изолятор, ВЧ-циркулятор, ВЧ-смеситель, ВЧ-усилитель, ВЧ-адаптер, ВЧ-разъем, ВЧ-модулятор, ВЧ-трансивер, PLL, VCO, синтезатор, антенну, осциллятор, делитель мощности, сумматор мощности, фильтр, аттенюатор, диплексер, дуплексер, чип-резистор, чип-конденсатор, чип-индуктор, ответвитель, ЭМС, программное обеспечение RF Design, диэлектрический материал, диод и т. д. Поставщики радиочастотных компонентов >>
➤Базовая станция LTE ➤ РЧ-циркулятор ➤РЧ-изолятор ➤Кристаллический осциллятор


MATLAB, Labview, Embedded Исходные коды

Раздел исходного кода RF Wireless World охватывает коды, связанные с языками программирования MATLAB, VHDL, VERILOG и LABVIEW. Эти коды полезны для новичков в этих языках. СМОТРИТЕ ИНДЕКС ИСТОЧНИКОВ >>
➤ 3–8 код декодера VHDL ➤Скремблер-дескремблер Код MATLAB ➤32-битный код ALU Verilog ➤ T, D, JK, SR триггеры коды labview


*Общая медицинская информация*

Сделайте эти пять простых вещей, чтобы помочь остановить коронавирус (COVID-19).
ВЫПОЛНИТЕ ПЯТЬ
1. РУКИ: Мойте их чаще
2. ЛОКТ: кашляйте в него
3. ЛИЦО: Не прикасайтесь к нему
4. НОГИ: Держитесь на расстоянии более 3 футов (1 м) друг от друга
5. ЧУВСТВУЙТЕ: Болен? Оставайтесь дома

Используйте технологию отслеживания контактов >> , следуйте рекомендациям по социальному дистанцированию >> и установить систему наблюдения за данными >> спасти сотни жизней. Использование концепции телемедицины стало очень популярным в таких стран, как США и Китай, чтобы остановить распространение COVID-19так как это заразное заболевание.


Радиочастотные калькуляторы и преобразователи

Раздел «Калькуляторы и преобразователи» охватывает ВЧ-калькуляторы, беспроводные калькуляторы, а также преобразователи единиц измерения. Они охватывают беспроводные технологии, такие как GSM, UMTS, LTE, 5G NR и т. д. СМ. КАЛЬКУЛЯТОРЫ Указатель >>.
➤ Калькулятор пропускной способности 5G NR ➤ 5G NR ARFCN и преобразование частоты ➤ Калькулятор скорости передачи данных LoRa ➤ LTE EARFCN для преобразования частоты ➤ Калькулятор антенны Yagi ➤ Калькулятор времени выборки 5G NR


IoT-Интернет вещей Беспроводные технологии

В разделе, посвященном IoT, рассматриваются беспроводные технологии Интернета вещей, такие как WLAN, WiMAX, Zigbee, Z-wave, UMTS, LTE, GSM, GPRS, THREAD, EnOcean, LoRa, SIGFOX, WHDI, Ethernet, 6LoWPAN, RF4CE, Bluetooth, Bluetooth с низким энергопотреблением (BLE), NFC, RFID, INSTEON, X10, KNX, ANT+, Wavenis, Dash7, HomePlug и другие.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *