Эффективен ли макрос?Почему бы не быть?Это просто спасает вас от повторного написания одного и того же кода.Допустим, в Windows вы посылаете WM_COMMAND довольно много раз, вместо того, чтобы писать:
mov ax, HiWord
ror eax, 16
mov ax, LoWord
каждый раз, вы помещаете его в макрос:
MAKEDWORD MACRO LoWord,HiWord
mov ax, HiWord
ror eax, 16
mov ax, LoWord
ENDM
Теперь все, что вам нужноdo is: MAKEDWORD somenumber, somenumber и результат будет в eax для передачи в функцию.Препроцессор заменит все экземпляры MAKEDWORD своим кодом.Недостатком (по крайней мере, мне так кажется) использования макросов является то, что если вы будете использовать его МНОГИЕ раз, вы получите «раздувание кода», вам лучше изменить макрос на функцию, если вы собираетесь использовать его много раз..