我有一个包含字符串常量的 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
切片。