#proc-macro #transpiler #c

cdefines

将C语言的# define常量转换为Rust的const

5个版本

0.1.4 2022年6月5日
0.1.3 2020年10月21日
0.1.2 2019年5月12日
0.1.1 2019年5月12日
0.1.0 2019年5月12日

#527 in 进程宏

MIT许可证

9KB
116

cdefines

将C代码中的# define转换为Rust的常量。

如何使用

添加到代码中

extern crate cdefines;

#[cdefines::preprocessor]
const IOCTL: &str = 
    "#define TCGETS		0x5401
    #define TCSETS		0x5402
    #define TCSETSW		0x5403
    #define TCSETSF		0x5404";

它会被转换成

const IOCTL_TCGETS: usize = 0x5401;
// ...
enum IOCTL {
    TCGETS = 0x5401,
    // ...
}

支持的内容

  1. 普通整数(十六进制、八进制、二进制、十进制)例如:#define A 0x1234
  2. 简单的定义级联例如:#define A 123然后#define B A

依赖

~79KB