汇编在做c头文件移植的时候,总觉得db dw dd dq的类型有些生硬,不具可读性,并且对于win32,win64的结构需要维护两份。于是写了个fasm的typedef宏(与c的写法相同),可用于结构体定义,数据定义,函数的局部变量local 定义中。
;---===---
;---===---fasm typedef macro by G-Spider @2013
;---===---
macro macro@typedef base,[type]
{
forward
struc type [v]
\{
\common match any, v \\{ . base v \\}
match , v \\{ . base ? \\}
\}
macro type [v]
\{
\common match any, v \\{ base v \\}
match , v \\{ base ? \\}
\}
virtual at 0
base ?
sizeof.#type=$
end virtual
}
macro typedef [statement]
{
common
match gs@base gs@type,statement
\{
macro@typedef gs@base,gs@type
\}
}
for example:
;声明
typedef dd SDWORD
typedef SDWORD DWORD,INT32,LONG
typedef db CHAR,BYTE
_WIN64 equ FALSE
m