Contar caracters

Iniciado por kokokoko, 9 Marzo 2012, 18:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Xandrete

Cita de: rir3760 en 11 Marzo 2012, 01:55 AM
Advierto: para variar me voy a pasar de "pesadito" (mas bien [CENSORED]).
No exactamente. Es mas complicado.

Para empezar el tipo "char" es equivalente a "signed char" (lo usual, al menos en PCs de escritorio) o "unsigned char" y, aquí el problema, eso es "implementation defined". Por ello el rango valido del tipo "char" es CHAR_MIN  .. CHAR_MAX (ambas macros cortesía del encabezado <limits.h>).

En el caso del tipo "signed char" y considerando que el mínimo numero de bits que lo componen es ocho su rango mínimo garantizado es -127 .. 127. Ello porque el estándar de C no especifica como serán representados los números negativos. De nuevo lo usual es complemento a dos pero bien puede utilizarse complemento a uno o magnitud con signo y en ese caso se debe considerar al (inútil) cero negativo.
Cuando las macros resultan en expresiones la convención es colocarlas delimitadas por paréntesis, de no hacerlo se pueden presentar casos donde la expresión termina con resultados no deseados, por ejemplo si declaramos un array con el doble de elementos:
int array[NUMOFLETTERS * 2];
Se presenta un error lógico.

Un saludo

No, tampoco [CENSORED]  :D. Es bueno que te corrijan.

Saludos.