É que estou fazendo um programa que mostra o tamanho de cada tipo de dados na máquina, porque li que em cada máquina pode ser diferente, logo seria somente pra verificação antes de começar a programar em uma máquina que não conheço.
 
	E ele estava ficando muito grande:
 
///////////////////////////////////////////////////////////////////////////////////////
//                                TAMANHO DE TIPOS                                   //
//   Programa para saber a quantidade de memória ocupada por cada tipo de dados      //
//                                   Eric MGS                                        //
//                                   08_12_2017                                      //
///////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
void main (void) {
    int tamanho,
        intervalo;
    //CHAR/SIGNED CHAR
    tamanho = sizeof (char);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("CHAR/SIGNED CHAR:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: -%i a %i\n\n",intervalo/2,intervalo/2);
    //UNSIGNED CHAR
    tamanho = sizeof (unsigned char);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("UNSIGNED CHAR:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: 0 a %i\n\n",intervalo);
    //SHORT/SHORT INT/SIGNED SHORT/SIGNED SHORT INT
    tamanho = sizeof (short);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("SHORT/SHORT INT/SIGNED SHORT/SIGNED SHORT INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: -%i a %i\n\n",intervalo/2,intervalo/2);
    //UNSIGNED SHORT/UNSIGNED SHORT INT
    tamanho = sizeof (unsigned short);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("UNSIGNED SHORT/UNSIGNED SHORT INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: 0 a %i\n\n",intervalo);
    //INT/SIGNED/SIGNED INT
    tamanho = sizeof (int);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("INT/SIGNED/SIGNED INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: -%i a %i\n\n",intervalo/2,intervalo/2);
    //UNSIGNED/UNSIGNED INT
    tamanho = sizeof (unsigned);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("UNSIGNED/UNSIGNED INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: 0 a %i\n\n",intervalo);
    //LONG/LONG INT/SIGNED LONG/SIGNED LONG INT
    tamanho = sizeof (long);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("LONG/LONG INT/SIGNED LONG/SIGNED LONG INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: -%i a %i\n\n",intervalo/2,intervalo/2);
    //UNSIGNED LONG/UNSIGNED LONG INT
    tamanho = sizeof (unsigned long);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("UNSIGNED LONG/UNSIGNED LONG INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: 0 a %i\n\n",intervalo);
    //LONG LONG/LONG LONG INT/SIGNED LONG LONG/SIGNED LONG LONG INT
    tamanho = sizeof (long long);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("LONG LONG/LONG LONG INT/SIGNED LONG LONG/SIGNED LONG LONG INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: -%i a %i\n\n",intervalo/2,intervalo/2);
     //UNSIGNED LONG LONG/UNSIGNED LONG LONG INT
    tamanho = sizeof (unsigned long long);
    intervalo = (pow(2,8*tamanho)-1);
    printf ("UNSIGNED LONG LONG/UNSIGNED LONG LONG INT:\n");
    printf ("Tamanho em bytes: %i\n",tamanho);
    printf ("Intervalo: 0 a %i\n\n",intervalo);
}
	 
	 
		E ainda falta o float, double e long double, então queria saber se dava pra fazer dessa forma que perguntei para diminuir o tamanho, sem precisar repetir os blocos de cada tipo que tem o mesmo código, mudando apenas no sizeof .
	 
	Quanto ao int32, não sabia sobre isso, é só com o int que dá pra fazer isso?