【发布时间】:2014-02-24 11:27:28
【问题描述】:
我正在编写一些代码来连接用 C 编写的现有库。在我的 Rust 代码中,我希望能够使用来自 CPP 宏的值。如果我有一个如下所示的 C include.h:
#define INIT_FLAG 0x00000001
我希望能够像这样在 Rust 中使用它:
#[link(name="mylib")]
extern {
pub static init_flag: c_int = INIT_FLAG;
}
我查看了其他 FFI 代码并且看到了很多人
在 Rust 中复制这些值,而不是从 FFI 中获取它们。
这似乎有点脆弱,我也希望能够处理
通过 CPP 宏定义的更复杂的东西。
只有在我确定我的 Rust 文件上运行 cpp 才会起作用
CPP 宏只用于简单的事情。
【问题讨论】:
标签: macros c-preprocessor ffi rust