#include <iostream>
#include <cstddef>
using namespace std;

#pragma pack(1)
struct STestPragmaPack {
  char c;
  long d;
} datasPP;
#pragma pack()

struct STestAttributPacked {
  char c;
  long d;
} __attribute__((packed)) datasAP;

struct STestAlignas {
  char c;
  alignas(char) long d;
} datasA;

int main() {
	cout << "pragma pack = " << sizeof(datasPP) << endl;
	cout << "attribute packed = " << sizeof(datasAP) << endl;
	cout << "alignas = " << sizeof(STestAlignas) << endl;
}