#define vs #undef en lenguaje C

En este artículo, discutiremos la diferencia entre el preprocesador #define y #undef en lenguaje C.

Preprocesador:

  • El preprocesador es un programa que se ejecuta antes de la compilación.
  • Solo nota la instrucción # iniciada.
  • # se llama directiva de preprocesador.
  • Cada directiva de preprocesamiento debe estar en su propia línea.
  • La palabra después de # se llama el comando del preprocesador.

#definir:

La directiva #define define un identificador y una secuencia de caracteres (un conjunto de caracteres) que se sustituirá por el identificador cada vez que se encuentre en el archivo fuente.

Sintaxis:

#define la secuencia de caracteres del nombre de la macro.
El identificador se conoce como nombre de macro y el proceso de reemplazo como reemplazo de macro.

Ejemplo:

#define PI 3.14
Aquí. PI es el nombre de la macro y 3.14 es la secuencia de caracteres.

Programa 1:

A continuación se muestra el programa C que ilustra el uso de #define: 

C

// C program illustrating the use of
// #define
#include <stdio.h>
#define PI 3.14
  
// Driver Code
int main()
{
    int r = 4;
    float a;
  
    a = PI * r * r;
    printf("area of circle is %f", a);
  
    return 0;
}
Producción:

area of circle is 50.240002

Explicación:

  • En este ejemplo, PI es el nombre de la macro y la secuencia de caracteres es 3.14.
  • Cuando el programa se ejecuta, el compilador verificará primero el comando #define y asignará el PI como 3.14.
  • Ahora, en todo el programa, dondequiera que el compilador vea la palabra PI , la reemplazará con 3.14 .

Programa 2:

 A continuación se muestra el producto de impresión del programa C de dos números usando #define:

C

// C program to find the product of
// two numbers using #define
  
#include <stdio.h>
#define PRODUCT(a, b) a* b
  
// Driver Code
int main()
{
    printf("product of a and b is "
           "%d",
           PRODUCT(3, 4));
  
    return 0;
}
Producción:

product of a and b is 12

Explicación:

  • En este ejemplo, se define un nombre de macro como el producto y pasa dos argumentos como ayb y da la secuencia de caracteres como el producto de estos dos argumentos .
  • Cuando el compilador ve el macro -nombre en la declaración de impresión, reemplaza el macro-nombre con el producto de a y b y da la respuesta como su producto.

#undef:

La directiva de preprocesador #undef se usa para macros indefinidas. 

Sintaxis:

#undef macro-nombre

Programa 3:

A continuación se muestra el programa C para ilustrar el uso de #undef en un programa:

C

// C program to illustrate the use
// of #undef in a program
#include <stdio.h>
#define PI 3.14
#undef PI
  
// Driver Code
int main()
{
    int r = 6;
    float a;
    a = PI * r * r;
  
    printf("area of circle is %f", a);
  
    return 0;
}

Producción:

Explicación: En este ejemplo, cuando se usa #undef , se eliminará el comando #define y la macro quedará indefinida y el compilador mostrará el error. 

Publicación traducida automáticamente

Artículo escrito por simrankumar0799 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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