首页 > 汇编中‘$’的用法在C中应用什么代替?

汇编中‘$’的用法在C中应用什么代替?

dwMsgTable    dd    WM_NULL
        dd    WM_ENTERSIZEMOVE
        dd    WM_EXITSIZEMOVE
        dd    WM_SETFOCUS
        dd    WM_KILLFOCUS
        dd    WM_ENABLE
        dd    WM_SETREDRAW
        .    .
        .    .
        .    .    //中间很多行类似的代码
        dd    WM_SETTEXT
        dd    WM_GETTEXT
        dd    WM_GETTEXTLENGTH
        dd    WM_PAINT
        dd    WM_CLOSE
        dd    WM_QUERYENDSESS
MSG_TABLE_LEN    equ    ($ - dwMsgTable)/sizeof dword

$表示当前的偏移量,在C中这种用法如何实现?


$ 表示当前代码行的地址,dwMsgTable是起始地址。这两个地址差除以dword的大小,就是"个数"
C里面用 sizeof 就可以了

同样数据类型用数组就可以了。

#typedef unsigned short DWORD
DWORD dwMsgTable[] = {WM_NULL,WM_ENTERSIZEMOVE 。。。。。。};
size_t MSG_TABLE_LEN = sizeof(dwMsgTable)/sizeof(DWORD);

这个是为了遍历所有window消息吧,C的话用 switch是不是更好呢。

【热门文章】
【热门文章】