【发布时间】:2016-07-07 11:46:14
【问题描述】:
我需要编写一个需要内联汇编的宏
#define create_me(name) \
__asm\
mov name,#0x1021\
__endasm\
但是 # 没有编译。我尝试将它作为参数传递,但这也不起作用。它说无效的预处理器令牌。我可以尝试使用内联函数,但无法动态创建寄存器名称。那就是我无权访问 name 变量。有没有人对如何在宏中使用 # 操作有任何建议。
我看过Escaping a # symbol in a #define macro?,但我已经清楚地解释了为什么我需要这里的宏。我的用例不同。
【问题讨论】:
-
SDCC,我想。 sdcc.sourceforge.net
-
是的。 SDCC 3.5 版
-
您可以选择以字符串格式执行内联汇编吗?如果是这样,只需将整个程序集转换为字符串。
-
是的。那是在那里。我只是想知道是否可以这样做
标签: c macros c-preprocessor sdcc