可以用铁锈包裹C枚举吗?

可以用铁锈包裹C枚举吗?,c,rust,C,Rust,可以用铁锈包裹C枚举吗 例如是,不做任何更改(除了空白以适应当前的锈迹样式): 打印11014您做了更改!{在原文中是独立的。:PThanks,但我认为C优化了枚举,所以我们永远不知道枚举的实际大小,这有没有改变?@MaikKlein,没有改变。是让用户控制枚举的大小,这会使这更容易,但是,一般来说,使用枚举的C API很难从其他语言与之交互ges(正是因为C编译器可以自由选择枚举的大小)。@dbaupp这是否意味着无法与使用枚举的C库接口?或者是否有解决方法?@MaikKlein,如果不强制使

可以用铁锈包裹C枚举吗

例如

是,不做任何更改(除了空白以适应当前的锈迹样式):


打印
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);
}