枚举被评估为意外值

时间:2014-02-25 15:45:02

标签: c++ gcc enums

我有以下枚举定义:

enum ReadMode {
    File = 0,
    MemMappedFile = 1,
    RAM = 2,
    VRAM = 3,
    DMA = 4
};

现在我遇到的问题是RAM评估为1而DMA评估为2。 我正在使用gcc,所以可能存在问题吗?

我不知道哪些附加信息可能有用,可能是分配值:

struct ConfigEntry {
    AssetRepoConfigBase::ReadMode readMode;

    void Init(AssetRepoConfigBase::ReadMode _readMode) {
        readMode = _readMode;
    }
};

有些人后来:

if (m_ConfigEntries != 0) {
    m_ConfigEntries[0].Init(DMA);
    m_assetRepoConfigEntries[1].Init(RAM);
}

这里的问题是:我正在使用2个库(都使用相同的编译器编译),其中1个库包含配置,另一个库读取数据。现在有一个库正在访问这些数据,我遇到了问题,因为在一个库中,这些值按预期进行评估。

PS:实际上这个结构包含了由init方法设置的附加数据,我只是将其剥离以简化。这些额外的数据是预期的,所以我认为这不是一个初始化问题。

PPS:配置库(发生此问题)仅使用枚举中的DMARAM,可能是某种优化问题(在其他库中使用所有枚举)。< / p>

0 个答案:

没有答案