макросы что это и для чего



Автор ~СЧАСТЛИВАЯ~ задал вопрос в разделе Прочее компьютерное

Макросы - что это, для чего используются и как? и получил лучший ответ

Ответ от Ирина Филитова[гуру]
Макросы
Макросы в языке Си преимущественно используются для определения небольших фрагментов кода. Во время обработки кода препроцессором, каждый макрос заменяется соответствующим ему определением. Если макрос имеет параметры, то они указываются в теле макроса; таким образом, макросы языка Си могут походить на Си-функции. Распространенная причина использования — избежание накладных расходов при вызове функции в простейших случаях, когда небольшого кода, вызываемого функцией, достаточно для ощутимого снижения производительности.
Например,
#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, для встроенных функций неактуальна

Ответ от Александр Бычихин[новичек]
это типа чита используют для выигрыша !!

Ответ от Олег Бельков[новичек]
Короче это программа которая Сделает за тебя что ыт хочеш

Ответ от Lexa5237[гуру]
Макрос - это общее название. Вы бы конкретней область назвали применения. Ну в общих чертах - это заранее заданная, определенная последовательность действий, которая выполняется автоматически. Т. е. штука для автоматизации работы (чаще всего рутинной).

Ответ от JustRasl <3[гуру]
макросы что скомбинировать 2 магий в 1 вов играешь?

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Макросы - что это, для чего используются и как?
Макрокоманда на Википедии
Посмотрите статью на википедии про Макрокоманда
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*