Cita de: josri en 28 Junio 2013, 06:45 AMSolo con las dos variables no es posible. En el caso de los enteros con signo se generaria comportamiento no definido (en buen cristiano: ya nos [CENSORED]) y en el caso de los sin signo el resultado se mueve al rango valido mediante modulo MAX + 1 (MAX es el valor maximo del tipo sin signo en cuestion).
se supone que tengo que verificar que una variable declarada (en C) como int o como double se use de forma adecuada es decir que no sobrepase su rango
[...]
El caso es que una vez declaradas dos variables int (por ejemplo), como podria hacer una operacion que supere su rango??.
Con ciertos tipos (por ejemplo int) una opcion es utilizar dos variables con un rango de valores mayor. Por ejemplo si la operacion a realizar es con el tipo int utilizarias tres variables auxiliares de tipo long long, dos para almacenar los valores y la tercera para el resultado. Mas o menos asi:
Código (c) [Seleccionar]
int int_a = ALGUN_VALOR;
int int_b = ALGUN_VALOR;
/* ... */
long long a = int_a;
long long b = int_b;
long long res = a operador b;
Esto con sus limitaciones ya que el rango de valores depende de la implementacion.
Cita de: josri en 28 Junio 2013, 06:45 AMno entiendo esa parte de ejemplificar alguna operacion que supere el rango de un int o double, para que asi con otro programa que lee este codigo fuente marque el error en la operacion e indique que sobrpaso el rango.Si manejas bien el ingles una pagina que describe el tema con algunos ejemplos es INT02-C. Understand integer conversion rules.
Un saludo