Böyle bir yapıya sahip (Ben sadece bir dizi cant'kullanma nedense):sizeof üye hesaplama hatası
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];
};
Ve derleme sırasında alanların miktarını hesaplamak için çalışıyorum:
enum {fieldsAmount = sizeof(OperatorData)/sizeof(OperatorData::m_record_0)};
Ve derleyici raporları böyle bir mesaj:
Error: #245: a nonstatic member reference must be relative to a specific object
enum{fieldsAmount = sizeof(OperatorData)/sizeof(OperatorData::m_record_0)};
^
Ben Keil uVision3 V3.60 kullanın. Yapının içinde veya dışında enum bildirimini nereye koyduğum önemli değil. Derleyici neden bu membranın boyutunu alamıyor?
sizeof() bunları kullanmak hangi OperatorData bir örneğini olması gerekiyor (ayrıca doğru değil). – Matthias
@Matthias: İşlenenin bir _lvalue_ olması gerekmez; türü, "sizeof" için uygun olduğu sürece izin verilir. –
Ayrıca, http://stackoverflow.com/a/10207185/147763 –