我有一个结构,希望使变量彼此相关。这是代码片段:

struct RSI
{
     int RSI;
     int ESI = RSI & 0x1F;
     int SI = ESI & 0x0F;
     int SIL = SI & 0x08;
};

有没有办法在C中执行此操作,而无需创建函数来修改变量?

最佳答案

不,您需要定义函数才能做到这一点。

在C++中,您当然可以封装细节:

struct RSI
{
private:
    int rsi;

public:
    RSI(int rsi) : rsi(rsi) {}

    int getRSI() const { return rsi; }
    int getESI() const { return getRSI() & 0x1F; }
    int getSI()  const { return getESI() & 0x0F; }
    int getSIL() const { return getSI()  & 0x08; }
};

10-05 18:13