我想调用宏N次,每次使用累加器,即;
%macro foo 1
range 1, 8, {some_partially_applied_macro %1}
%endmacro等于
%macro foo 1
some_partially_applied_macro %1, 1
some_partially_applied_macro %1, 2
some_partially_applied_macro %1, 3
...
some_partially_applied_macro %1, 8
%endmacro我尝试编写以下内容(以及其中的几个变体):
%macro range 3
%assign i %1
%rep %2
%[%3 i]
%assign i i+1
%endrep
%endmacro我没有成功。
一个重要的事情要注意的是,第三个论点可能需要部分适用。
发布于 2014-03-12 07:10:46
弄明白了。删除围绕%[...]的%[%3 i]部件。
它欺骗了我,因为我是这样测试的:
range 1, 8, {some_partially_applied_macro %1}实际上,在%1之后必须有一个逗号,或者NASM没有正确展开它(它不认为它是一个正确的逗号分隔的宏)。
https://stackoverflow.com/questions/22262308
复制相似问题