Процес заміни виклику макросу на оброблену копію тіла називається розширенням виклику макросу. На практиці існує два типи макросів. Об’єктоподібні макроси не приймають аргументів. Функціональні макроси можна визначити для прийому аргументів, щоб вони виглядали та діяли як виклики функцій.3 серпня 2021 р.
Розширення макросу може містити інструкції завантаження (LA, L, LH тощо), які завантажують параметри в регістри параметрів, і воно може містити інструкції (LR,…), які завантажують регістри параметрів із регістрів, завантажених процесором. Процесор також може безпосередньо завантажувати параметри.
Розгорнути вбудований макрос Коли ви наводите курсор на макрос, з’являються параметри «Копіювати», «Розгортати в рядку», «Візуалізувати розширення» та «Пошук в Інтернеті».. Виберіть «Розгорнути в рядку».. Макрос POWER() замінено його розширеним значенням: std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl; .
Макроси в C є директиви препроцесора, визначені за допомогою ключового слова #define. Вони використовуються для створення констант або функціональних конструкцій, які замінюються відповідними визначеннями перед тим, як почнеться фактична компіляція коду. Цей процес заміни називається макророзширенням.
Назва та параметри макросу визначають шаблон або прототип для макрокоманд, які використовує програміст. Тіло визначення макросу визначається операторами директиви MACRO. Розгортання макросів генерує ці твердження. Кінець визначення макросу визначається директивою асемблера MEND.
Асемблер розширює ваші макроси, коли їх викликає вихідна програма. Під час розширення, асемблер передає аргументи за змінною до параметрів макросу, замінює інструкцію виклику макросу визначенням макросу, а потім збирає вихідний код. За замовчуванням розширення макросів друкуються у файлі списку.