Есть структура _dem_ram_data_. Она должна занимать в памяти 16 байт, но я получаю 21 байт. Использую на 64 разрядной системе.
#include <iostream>
typedef unsigned long ViUInt32;
typedef long ViInt32;
typedef unsigned char ViUInt8;
typedef unsigned long long ViUInt64;
#pragma pack(push,1)
typedef struct _dem_ram_data_{
union {
struct {
ViUInt32 errors : 32;
ViInt32 addr : 27;
ViUInt8 _reserve : 2;
ViUInt8 dataType : 2;
ViUInt8 graphEna : 1;
} vecAddr;
struct {
ViUInt64 tact : 42;
ViUInt32 _reserve : 19;
ViUInt8 dataType : 2;
ViUInt8 graphEna : 1;
} tact;
ViUInt64 d;
} demData;
ViUInt32 cpl;
ViUInt32 cph;
} DemRamData, *PDemRamData;
#pragma pack(pop)
using namespace std;
int main()
{
cout << sizeof(DemRamData) << endl;
return 0;
}
Проблема решена заменой разных типов с битовыми полями на один. Спасибо!
#pragma pack(push,1)
typedef struct _dem_ram_data_{ // $DC
union {
struct {
ViUInt64 errors : 32;
ViUInt64 addr : 27;
ViUInt64 _reserve : 2;
ViUInt64 dataType : 2;
ViUInt64 graphEna : 1;
} vecAddr;
struct {
ViUInt64 tact : 42;
ViUInt64 _reserve : 19;
ViUInt64 dataType : 2;
ViUInt64 graphEna : 1;
} tact;
ViUInt64 d; // data
} demData;
ViUInt32 cpl;
ViUInt32 cph;
} DemRamData, *PDemRamData;
#pragma pack(pop)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть приложение с областью, которая реагирует на клик мышки:
Числовая последовательность называется пилообразной если каждый ее член (кроме первого и последнего) либо больше обоих своих соседей, либо...
Установка пустого атрибута ACCESS_EXTERNAL_DTD вызывает исключение "не поддерживается: http://javaxxml
Получилось синхронизировать состояние бокового меню с кнопкой бургера через ActionBarDrawerToggleТ