#include <stdio.h>
/* program wyswietla rozmiar pamieci zajmowanej przez zmienne danego typu */

int main()
{
    char znak = 'A';
    char napis1[]="jpr";
    char napis2[]={'j','p','r'};
    char napis3[33]="jpr";
    int tablica1[100];
    int tablica2[100][3];
    
    struct s1
    {
      char a;
      int b;
      float c;
      char d[10];
    };

    union u1
    {
      char a;
      int b;
      float c;
      char d[10];
    };

    struct s2
    {
      int a:1;
      int b:2;
      int c:3;
    };

    printf("Rozmiary typow:\n");
    printf("char            %d\n",sizeof(znak));
    printf("short           %d\n",sizeof(short));
    printf("int             %d\n",sizeof(int));
    printf("unsigned int    %d\n",sizeof(unsigned int));
    printf("long            %d\n",sizeof(long));
    printf("long int        %d\n",sizeof(long int));
    printf("float           %d\n",sizeof(float));
    printf("double          %d\n",sizeof(double));
    printf("long double     %d\n",sizeof(long double));
    printf("wskaznik int*   %d\n",sizeof(int*));
    printf("wskaznik int**  %d\n",sizeof(int**));
    printf("wskaznik void*  %d\n",sizeof(void*));
    printf("void            %d\n",sizeof(void));
    printf("napis1          %d\n",sizeof(napis1));
    printf("napis2          %d\n",sizeof(napis2));
    printf("napis3          %d\n",sizeof(napis3));
    printf("tablica1        %d\n",sizeof(tablica1));
    printf("tablica2        %d\n",sizeof(tablica2));
    printf("struct s1       %d\n",sizeof(struct s1));
    printf("union u1        %d\n",sizeof(union u1));
    printf("pola bitowe s2  %d\n",sizeof(struct s2));


}
