我正在尝试创建在编译时解析 C 头文件的可能性(并生成一堆要在其他代码中使用的数字常量)。我不需要解析所有的头文件结构,因为我控制了它的内容并且知道这个文件#define
里面只有 s。所以我尝试了以下方法:
macro_rules! parse_defines {
($(#define $x:ident $v:expr)+) => {$(
const $x: isize = $v;
)+};
}
它在我在代码本身中编写#define
s 时起作用,但在我使用时不起作用include!
,因为include!
宏在我的宏之前没有展开,并且它失败并出现“没有规则预期令牌”错误。有什么解决方法吗,还是我必须使用 proc 宏?