Pregunta sobre C

rot
04 de Mayo del 2008
¿Qué diferencia hay entre una constante del tipo
(#define PI 3.14) con una variable
que no se va a modificar que contiene el mismo valor?

PoWeRsgame
04 de Mayo del 2008
La principal diferencia es que al usar una variable consumirias recursos del PC de forma inecesaria, además de poder cambiar el valor de la variable por error.
Cuando ponemos una linea del código con # al inicio, esto es una instrucción para el compilador. A ver por ejemplo al usar la instruccion #define N 4 le estas diciendo al precompilador que cuando vea en el código la constante N la cambie por un 4, esto se hace en tiempo de compilación por lo que no consume recursos en tiempo de ejecución.
Si utilizamos una variable, además de tener que declarar esta como global para que sea accesible desde cualquier parte del código, el valor de la variable se guardará en una dirección de memoria., de forma que cada vez que se quiera acceder ha este valor se va a tener que leer de memoria haciendo un programa menos eficiente, ya que ocuparia más memoria y se accedería más veces a memoria.
Saludos

rot
04 de Mayo del 2008
mil gracias.