小编See*_*hay的帖子

包含C中条件字段的结构

我正在尝试实现一个协议标准,我对它们的条件字段概念有点麻烦.根据某些条件,它们被定义为存在或不存在的字段.他们给出的例子如下:

    uint16 Pressure;
    enum VehicleType { car = 0, motorbike = 1};
    struct TirePressureInfo {
                    VehicleType type;
                    select (type)
                    {
                    case car:
                            Pressure frontLeft;
                            Pressure frontRight;
                            Pressure rearLeft;
                            Pressure rearRight;
                    case motorbike:
                            Pressure front;
                            Pressure rear;
                    }
            }
Run Code Online (Sandbox Code Playgroud)

无论如何我都没有意识到要在C中完成这项工作,或者甚至可能.无论如何,我无法想到实现这一点.有一点需要注意的是,这将在Linux内核模块中实现,所以我也有一些限制.

            struct {
                    uint8 protocol_version;
                    ContentType type;
                    select (type) {
                    case unsecured :
                    opaque data<var>;
                    case signed, signed_partial_payload,
                    signed_external_payload:
                    SignedData signed_data;
                    case signed_wsa:
                    SignedWsa signed_wsa;
                    case encrypted :
                    EncryptedData encrypted_data;
                    case crl_request :
                    CrlRequest crl_request;
                    case crl :
                    Crl crl;
                    case other_value: …
Run Code Online (Sandbox Code Playgroud)

c conditional struct linux-kernel

1
推荐指数
1
解决办法
585
查看次数

标签 统计

c ×1

conditional ×1

linux-kernel ×1

struct ×1