【发布时间】:2017-03-21 23:29:00
【问题描述】:
有没有办法从“C”enum 中提取一个值以将它们传递到 gnu gcc asm('.S' 文件)中,而无需某种外部解析器?
我想得到的是
“my_header.h”
enum myErrors
{
NoError = 0,
TimeOut = 1,
BadArgument = 30,
};
“asm_file.S”
mov r0, #myErrors.TimeOut
PS:目前我看到的唯一解决方案是解析“my_header.h”并创建一个包含#define 的辅助文件以包含在“asm_file.S”中。
也许这个问题有一个很好的解决方案。
谢谢。
【问题讨论】:
-
枚举定义后缺少分号。
-
你为什么首先从事装配工作?我能想到的唯一合理的原因是手动优化一些速度关键部分。在这种情况下,程序集应该只执行速度关键的工作,并将错误处理留给 C 代码。这消除了从 asm 访问您的枚举的需要。
-
@Unimportant,因为它正是“速度关键部分”,它可能会失败并且必须返回错误
标签: c gcc assembly enums header-files