Diferencia entre const y #define en C, C ++ lenguaje de programación

Aprender: ¿Cuáles son las diferencias entre miembro de datos const, variable y #define (pre macro procesador) en C y C ++ Programming Language con ejemplos?

En este capítulo, vamos a aprender sobre el miembro de datos const, variable y definir un macro. const y #define tanto se utilizan para las constantes de la manija en el código fuente, pero algunas diferencias.

1) #define es pre-procesador directiva while const es una palabra clave

#define se utiliza para definir algunos valores con un nombre (cadena), esta cadena definida se conoce como definición de macros en C, C ++ while const es una palabra clave o se utiliza para hacer que el valor de un identificador (que es constante) constante.

2) #define no es controlado mientras que const ámbito de aplicación es controlada alcance

macro se puede utilizar en cualquier lugar en el programa o en otros archivos a al incluir el archivo de cabecera relacionada, por tanto, las macros se alcance no controlados, pero la constante puede ser declarado dentro de la función y, por tanto, se puede acceder sólo dentro de la función / ámbito en el que se declara constante, por lo tanto, podemos decir miembro const se controla siempre alcance.

El uso de const es siempre una buena costumbre. Debido a que el uso de while const podemos controlar su alcance. If función que se coloca dentro de cualquier usuario a definir, su efecto sería local a la función y if se coloca fuera de todo usuario definir funciones entonces se convierte en global para todos los archivos.

C ++ ejemplo, lo que demuestra el uso de #define y const

#include <iostream>
using namespace std;
//macro definition
#define X 30
//global integer constantt
const int Y = 10;
int main()
{
//local ineteger constant`
const int Z = 30;
cout<<"Value of X: "<<X<<endl;
cout<<"Value of Y: "<<Y<<endl;
cout<<"Value of Z: "<<Z<<endl;
return 0;
}

salida

Value of X: 30 
Value of Y: 10
Value of Z: 30

En el programa anterior, X es constante simbólica global, pero es pre-procesada antes de la compilación y Y y también constante global mientras que Z es local para la función main.

3) Macros (#define) puede redefinirse pero no puede

Macro (definido) puede redefinirse en cualquier lugar en el programa (por ONU-definir y luego definir), pero constante, no puede ser re-declarada o re -definida incluso que no pueden volver a asignar el valor de la constante.

C Ejemplo ++, para redefinir una macro

#include <iostream>
using namespace std;
//macro definition
#define X 30
int main()
{
cout<<"Value of X: "<<X<<endl;
#undef X
#define X 300
cout<<"Value of X: "<<X<<endl;
return 0;
}

salida

Value of X: 30
Value of X: 300

Aquí, se puede ver que hemos cambiado (redefinido) el valor de X y ha cambiado, programa ejecutado con éxito y valor definido ha cambiado.

C Ejemplo ++, para redefinir la (re-asignar) un contenido – (ERROR)

#include <iostream>
using namespace std;
//constant int
const int Y=10;
int main()
{
cout<<"Value of Y: "<<Y<<endl;
Y=100; //error, we can not assign value to const
cout<<"Value of Y: "<<Y<<endl;
return 0;
}

salida

main.cpp: In function 'int main()': 
main.cpp:10:3: error: assignment of read-only variable 'Y'
Y=100; //error, we can not assign value to const
^

Aquí, se puede ver que no podemos cambiar el valor de una constante, que aquí hemos tratado de cambio el valor de Y , pero hay un error de compilación.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *