gpt4 book ai didi

c++ - sizeof 成员计算错误

转载 作者:IT老高 更新时间:2023-10-28 23:11:18 25 4
gpt4 key购买 nike

我有这样的结构(由于某种原因我不能只使用数组):

  struct OperatorData 
{
char m_record_0[RIX_OPERATOR_CONFIG_SIZE];
char m_record_1[RIX_OPERATOR_CONFIG_SIZE];
//....
char m_record_9[RIX_OPERATOR_CONFIG_SIZE];
};

我正在尝试在编译时计算字段数量:

enum {fieldsAmount = sizeof(OperatorData) / sizeof(OperatorData::m_record_0)};

并且编译器会报告这样的消息:

Error:  #245: a nonstatic member reference must be relative to a specific object
enum{fieldsAmount = sizeof(OperatorData) / sizeof(OperatorData::m_record_0)};
^

我用的是keil uVision3 V3.60。我将枚举声明放在结构内部或外部的哪个位置都没有关系。为什么编译器不能接受这个成员的大小?

最佳答案

您的编译器似乎不支持允许在未计算表达式中使用 Type::member 的 C++11。您必须制作正确类型的表达式,例如:

OperatorData* noImpl();

enum{fieldsAmount = sizeof(OperatorData) / sizeof(noImpl()->m_record_0)};

关于c++ - sizeof 成员计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com