私はそのような構造を持っています(何らかの理由で配列を使用することはできません):
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を使用しています。構造体の内側または外側のどこに enum 宣言を配置してもかまいません。コンパイラがこのメンバーのサイズを取得できないのはなぜですか?