6.7. Макросы с несколькими групповыми аргументами

Возможно использовать и несколько групповых аргументов. В этом случае определение макроса не будет выглядеть как:

macro a [grp1],[grp2]

так как тут не ясно какой аргумент какой группе принадлежит. Исходя из этого делают так:

Синтаксис:

macro a [grp1,grp2]

В этом случае каждый нечётный аргумент относится к группе grp1, а каждый чётный — к grp2:

macro a [grp1,grp2]

{

 forward

  l_#grp1:

 forward

  l_#grp2:

}

a 1,2,3,4,5,6

будет:

l_1:

l_3:

l_5:

l_2:

l_4:

l_6:

Или ещё:

macro ErrorList [name,value]

{

 forward

  ERROR_#name = value

}

ErrorList

 NONE,0,

 OUTOFMEMORY,10,

 INTERNAL,20

получим:

ERROR_NONE = 0

ERROR_OUTOFMEMORY = 10

ERROR_INTERNAL = 20

Конечно же, может быть больше 2х групп аргументов:

macro a [g1,g2,g3]

{

 common

  db g1

  db g2

  db g3

}

a 1,2,3,4,5,6,7,8,9,10,11

будет:

db 1,4,7,10

db 2,5,8,11

db 3,6,9

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК