【问题标题】:Large c2hs-inferred size of C enumC 枚举的大 c2hs 推断大小
【发布时间】:2016-05-26 15:13:21
【问题描述】:

在编写具有 5 个选项(使用 c2hs)的 C 枚举的 Storable 实例时,{# sizeof #} 宏返回 4(即 4 个字节)。当 3 位就足够时,这不是非常浪费吗?这是否取决于内存字的大小?

【问题讨论】:

    标签: c unix haskell ffi c2hs


    【解决方案1】:

    枚举的大小是实现定义的。标准说:

    6.7.2.2 枚举说明符
    ...

    每个枚举类型都应与char、有符号整数类型或 无符号整数类型。类型的选择是实现定义的...

    顺便说一句,在 C++ 中可以显式指定底层类型,例如:

    enum E : int
    {
        // ...
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2015-07-31
      • 2017-09-02
      • 2010-09-14
      • 2011-06-20
      相关资源
      最近更新 更多