Автор ~СЧАСТЛИВАЯ~ задал вопрос в разделе Прочее компьютерное
Макросы - что это, для чего используются и как? и получил лучший ответ
Ответ от Ирина Филитова[гуру]
Макросы
Макросы в языке Си преимущественно используются для определения небольших фрагментов кода. Во время обработки кода препроцессором, каждый макрос заменяется соответствующим ему определением. Если макрос имеет параметры, то они указываются в теле макроса; таким образом, макросы языка Си могут походить на Си-функции. Распространенная причина использования — избежание накладных расходов при вызове функции в простейших случаях, когда небольшого кода, вызываемого функцией, достаточно для ощутимого снижения производительности.
Например,
#define max(a,b) ((a) > (b) ? (a) : (b))
определяет макрос max, использующий два аргумента a и b. Этот макрос можно вызывать как любую Си-функцию, используя схожий синтаксис. То есть, после обработки препроцессором,
z = max(x,y);
становится
z = ((x) > (y) ? (x) : (y));
Однако, наряду с преимуществами использвания макросов в языке Си, например, для определения типобезопасных общих типов данных или отладочных инструментов, они также несколько снижают эффективность их применения и даже могут привести к ошибкам.
Например, если f и g — две функции, вызов
z = max(f(), g());
не вычислит один раз f()и один раз g(), и поместит наибольшее значение в z, как этого можно было ожидать. Вместо этого одна из функций будет вычислена дважды. Если функция имеет побочные эффекты, то вероятно, что ее поведение будет отличаться от ожидаемого.
Макросы Си могут походить на функции, создавая новый синтаксис в некоторых пределах, а также могут быть дополнены произвольным текстом (хотя компилятор Си требует, чтобы текст был без ошибок написанным Си-кодом или оформлен как комментарий) , но у них есть некоторые ограничения как у программных конструкций. Макросы, схожие с функциями, например, могут быть вызваны как «настоящие» функции, но макрос не может быть передан другой функции при помощи указателя, по той причине, что макрос сам по себе не имеет адреса.
Некоторые современные языки обычно не используют такой способ метапрограммирования с использованием макросов как дополнений строк символов, в расчете или на автоматическое или на ручное подключение функций и методов, а вместо этого другие способы абстракции, такие как шаблоны, общие функции или параметрический полиморфизм. В частности, встраиваемые функции позволяют избежать одного из главных недостатков макросов в современных версия Си и C++, так как встроенная функция обеспечивает преимущество макросов в снижении накладных расходов при вызове функции, но ее адрес можно передавать в указателе для косвенных вызовов или использовать в качестве параметра. Аналогично, проблема множественных вычислений, упомянутая выше в макросе max, для встроенных функций неактуальна
это типа чита используют для выигрыша !!
Короче это программа которая Сделает за тебя что ыт хочеш
Макрос - это общее название. Вы бы конкретней область назвали применения. Ну в общих чертах - это заранее заданная, определенная последовательность действий, которая выполняется автоматически. Т. е. штука для автоматизации работы (чаще всего рутинной).
макросы что скомбинировать 2 магий в 1 вов играешь?
C++ Объясните что означают LRESULT и CALLBACK?
Как правило, полностью большими буквами в C++ пишутся имена макросов. Поищи в библиотеках, во что
подробнее...
Что такое скрипты? ? и для чего они?
Это действие, выполняемое по условиям ситуации. Короткая программка, привязаная к какому-то
подробнее...
Что такое макросы? Для чего они нужны? была на собеседовании и полегла на этом вопросе. ни разу не сталкивалась...
Мáкрос (от греч. μακρός - большой, долгий; ) — программный
подробнее...
Хочу научиться программировать в Ворде, научите пожалуйста
Как нам рассказывали на курсах информатики все настоящие программисты программируют в ворде и
подробнее...
Для чего создаются вирусы и антивирусы ?
Компьютерные вирусы – программы, которые создают программисты специально для нанесения ущерба
подробнее...
Что такое макрос в solidworks? И для чего он нужен? Как его создавать и использовать? Где он используется?
макрос - последовательность действий, обьединенных в одну "кнопку".
Для создания макроса есть
подробнее...
Требуется человек, который умеет писать сложные макросы в Excel 2007
Что их писать? Если требуется выполнить ряд однотипных действий над каким либо документом (областью
подробнее...
что можно создавать на visual basic?
Для обучения программированию я бы все же рекомендовал Visual Basic 6.0 - он намного легче, проще,
подробнее...
Хочу научиться работать в EXCEL. Насколько это сложно???
На офф. сайте самих мелкомягких ( microsoft) eсть неплохие обучалки, посмотри.
А вообще,
подробнее...
Что такое форма Access? какие способы создания форм бы знаете?
Это средство при помощи, которого База данных оформляется в нормальный красивый вид 🙂
Я знаю
подробнее...
Кто знает что такое кликер, как им пользоваться и самое главное сколько приблизительно стоит?
Что такое кликер-тренинг? Что такое кликер-тренинг?
Около 10 лет назад кликер-тренинг начал
подробнее...