Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Что такое sizeof()?

26.01.07 17:11
Что такое sizeof()?
 
rahimov80 завсегдатай
У меня есть структура, в ней поля Type1 m_field1, Type2 m_field2, Type3 m_field3, etc. Я делаю сериализацию для этой структуры и хочу знать смещение для field3 : st_Offset_Of_Field3. Так как, эта переменная, конечно одинакова для всех объектов/instances, то определяю его как static. Корректно?
Как посчитать st_Offset_Of_Field3? Вроде бы просто: st_Offset_Of_Field3 = sizeof(m_field1) + sizeof(m_field2);
Но компилятор ругается (GCC): обращаюсь из статик переменной к non-static полю. А какая разница для sizeof - значение же высчитывается в compile-time, а не в run-time?
P.S. Я знаю workaround: st_Offset_Of_Field3 = sizeof(Type1) + sizeof(Type2); Но если завтра, кто-нибудь с "кривыми руками" поменяет Type1 на Тype5 и забудет это сделать для st_Offset_Of_Field3? А у меня соответственно и таких полей куча, и структур, и типов, и смешений...
 

Перейти на