Depende del compilador, sobre todo sobre cuántos bits usa.
Para un procesador de 32 bits, suelen ser éstos valores:
char 1 byte -> Byte - 0 hasta 255 (unsigned)
short* 2 bytes -> Word - 0 hasta 65525 (unsigned)
long* 4 bytes -> DWord - 0 hasta 4294967295 (unsigned)
* int "a secas" peude referirse a "long" o "short", pueda variar. Con la mayoría se refiere a long.
Consulta la información de tu compilador, aunque suele ser como te he dicho. "long" suele ser suficiente para contadores. Para saberlo, 255^x-1, siendo x los bytes, o 2^(x*8) bytes, o 2^x bits.
Otra manera para saber cuánto admite el compilador es usar sizeof:
Código:
printf
(
"char\t\t= %i bytes\n"
"short\t\t= %i bytes\n"
"long\t\t= %i bytes\n\n"
"Coma flotante:\n"
"float\t\t= %i bytes\n"
"double\t\t= %i bytes\n"
,sizeof(char)
,sizeof(short)
,sizeof(long)
,sizeof(float)
,sizeof(double)
);
También existen otros más especiales, de compiladores, pero no son estándar. Como el "long double", "long long", __int64, __...
8 bytes -> QWord - 0 hasta 18446744073709551615 (unsigned)
En en el enalce de Eternal Idol encuentras los de VC++, pero cada compilador tiene su propia especificación.
PD: "Localización: séveR led onieR lE", ¿no sería "Localización: sèveR led onieR lE"?