PDA

Просмотр полной версии : Об распределении структуры в памяти



vapik
12.03.2014, 19:37
Всем здравствуйте.

Имеется тип VEH, представляющий из себя структуру.

В Data types:
TYPE VEH :
STRUCT

state:BOOL;

alarm:BOOL;

freq: REAL;

ack: BOOL;
END_STRUCT
END_TYPE

В Global variables:
VEH1 AT %MB0 : VEH;

Вопрос:
А как узнать, как распределилась память? Т.е. какие адреса имеют переменные VEH1:state,alarm,freq,ack?

lara197a
12.03.2014, 19:56
на ваш вопрос ответить прямо не могу.
слышал, что память при компиляции распределяет драйвер.
но интересно, а вам зачем?
можно обращаться по имени(косвенная адресация)
ни на скорость, ни на что др. не влият.
Да и удобнее это.

Валенок
12.03.2014, 20:25
Побайтно
VEH{
0:State
1:Аlarm
2-3:выравнивание
4-7:freq
8:ack
9-11:выравнивание
}

sizeof в онлайн = 12

Если нужно экономить память, вставьте ack перед freq

vapik
14.03.2014, 10:17
Спасибо за ответ.
Не экономно как-то получается.

Валенок
14.03.2014, 20:40
8 меньше чем 12