C++ Preprocessor #define

En C++ existe el preprocessor #define muy utilizado en las competencias.

Este consiste en ‘reemplazar’ el texto definido por otro.

Por ejemplo:

#define MAX(a,b) (a>b)?a:b
int main(){
    int x = MAX(12,34+2);
}

Reemplazando las variables nuestro codigo se convertiria en:

int main(){
    int x = (12>34+2)?12:34+2;
}

Como se puede ver el preprocessor cambia exactamente lo que ponemos. A continuacion esta otro ejemplo un poco mas complicado.

#define FOR(i,a,b)  for(int i=(a),_##i=(b);i<_##i;++i)
int main(){
    FOR(x,2,13) {
        cout << x << endl;
    }
}

Cambiando las variables en el macro tenemos.

int main(){
    for(int x=(2),_i=(13);x<_i;++x) {
        cout << x << endl;
    }
}

Se puede ver que no hay cambios a la segunda ‘i’ ya que tenia ‘##’.

Ahora por que no pruebas suerte XD, que respuesta dara el siguiente #define?

#define MUL(x,y) (x*y)
int main(){
    cout << MUL(2+3,5) << endl;
    cout << MUL(2+3,1) << endl;
}

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s