G
Guest
Подскажите кто знает!
Пишу на C++ Builder 2007.
Имеется такая структура
struct log_adat_type
{
char type; //Тип устройства //1 Байт
char XXXXXXX[3]; //3 Байта
double datum; //Дата приема данных //8 Байт
double ido; //Время приема данных //8 Байт
unsigned short busz; //Код мобильного интерфейса //2 Байта
unsigned short kodado; //Код остановки //2 Байта
unsigned short interface1; //2 Байта
unsigned short interface2; //2 Байта
unsigned short kezelo_ID_1; //Kezelõ_Id_1 As Integer //2 Байта
unsigned short kezelo_ID_2; //Kezelõ_Id_2 As Integer //2 Байта
unsigned short stage_number_1; //Munkaállás_Sorszám_1 As Integer //2 Байта
unsigned short stage_number_2; //Munkaállás_Sorszám_2 As Integer //2 Байта*/
double joint_time_period; //Kapcsolódó_Idõpont As Double //8 Байта
unsigned short adat_1; //Adat_1; //2 Байта
unsigned short adat_2; //Adat_2 As Integer //2 Байта
unsigned short adat_3; //2 Байта
char state_1; //Státusz //1 Байт
char state_2; //Státusz_2 As String * 1 //1 Байт
char state_3; //Státusz_3 As String * 1 //1 Байт
char state_4; //Státusz_4 As String * 1 //1 Байта
char XXXXXX[2]; //As String * 2 //2 Байта
} dataRead;
Структурка была взята из бэйсика там она размером 56 байт
Поменял все типы как надо посчитал в ручную занимает тоже 56 байт!
Но когда определяю размер структуры с помощью sizeof то получается что она размером 64 байта!
Как такое получается???
Если все зарэмить кроме первых двух чаров выдает размер 4
Если заремить все кроме двух первых Даблов выдает 16
А если все зарэмить кроме первых четырех строчек где два Чара и два Дабла выдает 24 как так получается?
Получается если данные в структуре одного типа то все правильно размер считается а если разных то не правильно!
К примеру если оставить один чар и один дабл то почему то размер структуры будет 16 байт!
Что я не так делаю то???
Вывод на экран через Edit1->Text = sizeof (dataRead);
Больше не какого кода нет!
Пишу на C++ Builder 2007.
Имеется такая структура
struct log_adat_type
{
char type; //Тип устройства //1 Байт
char XXXXXXX[3]; //3 Байта
double datum; //Дата приема данных //8 Байт
double ido; //Время приема данных //8 Байт
unsigned short busz; //Код мобильного интерфейса //2 Байта
unsigned short kodado; //Код остановки //2 Байта
unsigned short interface1; //2 Байта
unsigned short interface2; //2 Байта
unsigned short kezelo_ID_1; //Kezelõ_Id_1 As Integer //2 Байта
unsigned short kezelo_ID_2; //Kezelõ_Id_2 As Integer //2 Байта
unsigned short stage_number_1; //Munkaállás_Sorszám_1 As Integer //2 Байта
unsigned short stage_number_2; //Munkaállás_Sorszám_2 As Integer //2 Байта*/
double joint_time_period; //Kapcsolódó_Idõpont As Double //8 Байта
unsigned short adat_1; //Adat_1; //2 Байта
unsigned short adat_2; //Adat_2 As Integer //2 Байта
unsigned short adat_3; //2 Байта
char state_1; //Státusz //1 Байт
char state_2; //Státusz_2 As String * 1 //1 Байт
char state_3; //Státusz_3 As String * 1 //1 Байт
char state_4; //Státusz_4 As String * 1 //1 Байта
char XXXXXX[2]; //As String * 2 //2 Байта
} dataRead;
Структурка была взята из бэйсика там она размером 56 байт
Поменял все типы как надо посчитал в ручную занимает тоже 56 байт!
Но когда определяю размер структуры с помощью sizeof то получается что она размером 64 байта!
Как такое получается???
Если все зарэмить кроме первых двух чаров выдает размер 4
Если заремить все кроме двух первых Даблов выдает 16
А если все зарэмить кроме первых четырех строчек где два Чара и два Дабла выдает 24 как так получается?
Получается если данные в структуре одного типа то все правильно размер считается а если разных то не правильно!
К примеру если оставить один чар и один дабл то почему то размер структуры будет 16 байт!
Что я не так делаю то???
Вывод на экран через Edit1->Text = sizeof (dataRead);
Больше не какого кода нет!