我正在为 rust 迹写一个FFI包装.我见过libc::c_char
和std::os::raw::c_char
的用法.我想知道我的知识和C之间是否有极小的区别.如果我想通过cffi向Python公开字符串,我应该使用什么?
我正在为 rust 迹写一个FFI包装.我见过libc::c_char
和std::os::raw::c_char
的用法.我想知道我的知识和C之间是否有极小的区别.如果我想通过cffi向Python公开字符串,我应该使用什么?
我无法回答哪个更惯用,但我可以说它们在64位Linux(大多数在线托管文档的默认平台)上是相同的:
type c_char = i8;
type c_char = i8;
在不同的平台上进行更广泛的研究有点复杂.标准图书馆有tightly groups all the definitions for c_char
个,但有libc groups them by platform个.考虑到这种类型的基础,我希望它们在所有平台上都是一样的.
实际上,这两个定义都不可能改变,所以可能没有任何 solidity 差异.
我的意见是使用标准库版本中的一个,直到我需要使用libc
中的特定内容,在这种情况下,我可能会将所有类型切换到libc变体,只是为了保持一致.