Определить регион адресов в сегменте данных
Например есть код:
#include <stdio.h>
int region1_start = 0;
int val1 = 0x55;
int val2 = 0x66;
int region1_end = 0;
int main(void)
{
//размер региона в байтах
int size = (char*)®ion1_end - (char*)®ion1_start;
//просто какие то вычисления с переменными из региона
int ret = val1 + val2;
//выводим размер региона в байтах
printf("%X\n", size);
return 0;
}
Что мне надо - что бы в сегменте данных ЕХЕ файла была такая последовательноть (например 0х0 начало сегмента данных - для примера):
0x0000 region1_start //смещение 0 байт 0x0004 val1 //смещение 4 байт 0x0008 val2 //смещение 8 байт 0x000C region1_end //смещение 12 байт
Есть такие то директивы компилятора или настройки Visual Studio что бы мне сделать такой регион памяти и int size было = 12?
То есть мне важна последовательность данных в сегменте данных сначала region1_start потом val1 потом за ней в сегменте данных val2 потом конец моих переменных region1_end.
Я просто скомпилировал код С++ выше, и посмотрел дизасемблером - компилятор С++ раскидал все 4 переменные по разным участкам сегмента данных. Мне нужна именно такая последовательность как я указал. Фактически мне надо пометить блок данных в сегменте данных.
Как это сделать? Заранее спасибо.