可以用铁锈包裹C枚举吗?
可以用铁锈包裹C枚举吗 例如是,不做任何更改(除了空白以适应当前的锈迹样式):可以用铁锈包裹C枚举吗?,c,rust,C,Rust,可以用铁锈包裹C枚举吗 例如是,不做任何更改(除了空白以适应当前的锈迹样式): 打印11014您做了更改!{在原文中是独立的。:PThanks,但我认为C优化了枚举,所以我们永远不知道枚举的实际大小,这有没有改变?@MaikKlein,没有改变。是让用户控制枚举的大小,这会使这更容易,但是,一般来说,使用枚举的C API很难从其他语言与之交互ges(正是因为C编译器可以自由选择枚举的大小)。@dbaupp这是否意味着无法与使用枚举的C库接口?或者是否有解决方法?@MaikKlein,如果不强制使
打印
11014
您做了更改!{
在原文中是独立的。:PThanks,但我认为C优化了枚举,所以我们永远不知道枚举的实际大小,这有没有改变?@MaikKlein,没有改变。是让用户控制枚举的大小,这会使这更容易,但是,一般来说,使用枚举的C API很难从其他语言与之交互ges(正是因为C编译器可以自由选择枚举的大小)。@dbaupp这是否意味着无法与使用枚举的C库接口?或者是否有解决方法?@MaikKlein,如果不强制使用C编译器构建C库,则很难对枚举使用可预测的大小(例如,总是尽可能小的尺寸,或者总是int
)。
enum List {
MaxLogLevel = 1,
MaxNumMessages,
TrilinearFiltering,
MaxAnisotropy,
TexCompression,
SRGBLinearization,
LoadTextures,
FastAnimation,
ShadowMapSize,
SampleCount,
WireframeMode,
DebugViewMode,
DumpFailedShaders,
GatherTimeStats
}
fn main() {
println!("{} {} {}",
MaxLogLevel as uint,
SampleCount as uint,
GatherTimeStats as uint);
}