OlivaEduardo / PrimerEjercicio

Intentando aprender a manejar el repo en GitHub
0 stars 0 forks source link

avoid repeat processing #8

Open RicardoRodriguezArg opened 6 years ago

RicardoRodriguezArg commented 6 years ago

https://github.com/OlivaEduardo/PrimerEjercicio/blob/cfcf64c31db8e42836ef16d9992f0afa7b65a7ed/Project1/Project1/Principal.cpp#L18 En esta linea estas llamando dos veces a la macro, podrias declarar una variable en la linea anterior del tipo constante y solamente llamar una vez a la macro para realizar la suma. Sugerencia: const int suma = SUMA(num1,num2); std::cout << "El cuadrado de la suma de los numeros ingresados es: " << suma * suma << "\n";

OlivaEduardo commented 6 years ago

De nuevo, la intención era demostrar el funcionamiento de la macro, pero debo admitir también que no lo había tenido en cuenta. Por cierto, ¿Cuál es la diferencia entre una variable regular y una de tipo constante?

RicardoRodriguezArg commented 6 years ago

Genial, Te cuento: VARIABLE declarada como const en un PROGRAMA: Una variable declarada como const, es una variable la cual no puede cambiar el contenido al cual es declarada, cualquier intento por modificar esa variable creara un error en la compilacion y esta se detendra, Por otra parte una variable no tratada como CONST, se puede modificar su contenido en cualquier momento, el compilador permitira esta operacion. Por otra para una variable CONST, es tratada diferente por el compilador ya que asigna esta a un entrada en la tabla de simbolos durante el proceso de compilacion.Por lo que no lo asigna aun registro de la CPU para traer instrucciones desde memoria, por lo que es mas optimo. Se usa generalmente para declarar valores singulares, PI, ETHA. FIRST_INDEX, etc, etc. Esto ocurre SI Y SOLO SI no realizar una obtencion de memoria de la variable, por ejemplo: const int CONSTANT =1; int una_variable = &CONSTANT; aca el compilador, debe si o si asignar esta variable a un registro, porque el señor programador quiere hacer algo con la direccion de la constante. (**)Existen mas explicaciones sobre CONST en disitintos entornos, pero por ahora esto basta. Saludos !