struct primer
{
bool bo;
char ch;
short sh;
int in;
long lo;
float fl;
double dou;
long double ldou;
long long lolo;
};
void main(void)
{
primer types;
bool *ptr1;
ptr1=&types.bo;
PR (ptr1);
char *ptr2;
ptr2=&types.ch;
PR (ptr2);
short *ptr3;
ptr3=&types.sh;
PR (ptr3);
int *ptr4;
ptr4=&types.in;
PR (ptr4);
long *ptr5;
ptr5=&types.lo;
PR (ptr5);
float *ptr6;
ptr6=&types.fl;
PR (ptr6);
double *ptr7;
ptr7=&types.dou;
PR (ptr7);
long double *ptr8;
ptr8=&types.ldou;
PR (ptr8);
long long *ptr9;
ptr9=&types.lolo;
PR (ptr9);
setlocale(LC_ALL,"Rus");
printf ("Длина структуры = %u", sizeof(types));
getch();
}
В этой программе, мы просто присваиваем указателям определённого типа, адреса переменных того-же типа находящихся в структуре и выводим их на экран.
В заключении выводим длину структуры в байтах.
В данной программе использованы все фундаментальные типы Си++ (кроме _wchar_t)
Есть ещё спецификация Microsoft - __intn, где n - 8,16,32,64,128 битные данные. (перед int, два символа подчёркивания)
Например: long long == __int64
bool - 1 байт
char - 1 байт
short - 2 байта
int - 4 байта
long - 4 байта
float - 4 байта
double - 8 байт
long double - 8 байт
long long - 8 байт