0

我有一个包含字符串常量的 C 头文件

#define SOLCLIENT_SESSION_PROP_USERNAME "SESSION_USERNAME"

bindgen 将它们翻译成

pub const SOLCLIENT_SESSION_PROP_USERNAME: &'static [u8; 17usize] = b"SESSION_USERNAME\0";

char(1) 当 C 比8 位更宽时, bindgen 将如何表现。它会生成u16数组吗?

(2) 如果是这样,如何使用翻译后的常量,以便我的 Rust 代码在 char 为 8 位和 16 位的系统上都适用。目前我使用std::ffi::CStr::from_bytes_with_nul()后跟.as_ptr()将这些常量转换为,*const c_char但这不起作用,因为from_bytes_with_nul需要u8切片。

4

0 回答 0