La mejor respuesta
#define es una declaración previa al procesador en lenguaje C.
Todas las declaraciones con el prefijo # son preprocesador declaraciones.
1.
#define MAX\_STUDENTS 200
#define se usa para declarar macro constantes (de cualquier tipo), como se muestra arriba. Si un valor se usa en varios lugares, en el código, el mantenimiento del código se vuelve fácil. Cuando es necesario cambiar el valor de MAX\_STUDENTS, debe cambiarse solo en una línea de código en lugar de en varios lugares.
La desventaja de este enfoque es que el depurador no reconoce este valor.
int arr [MAX\_STUDENTS];
También se puede utilizar en compilación condicional, como se muestra a continuación
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
NOTA: #undef se puede utilizar para indefinir
2.
#define SQUARE (x) (x * x)
Las funciones de macro son como funciones normales, excepto que el preprocesador reemplaza las llamadas al método, en lugar de llamar a la función durante el tiempo de ejecución.
Las ventajas son que se evita la sobrecarga de llamadas a funciones, por lo que la ejecución es más rápida
CUADRADO (2 + 3)
La desventaja es que la función macro no se comporta como funciones normales. Por ejemplo, considere la llamada de macro anterior SQUARE (2 + 3), que da como resultado un valor incorrecto 11, donde la función normal devuelve 25.
Se recomienda utilizar la función macro (en lugar de la función normal), cuando el tamaño es una o dos líneas y no tiene efectos secundarios, como se muestra arriba.
Respuesta
#define es un C preprocesador directiva utilizada para definir macros .
Analicemos eso.
Una directiva de preprocesador es una declaración de programa que se invoca antes de que tenga lugar la compilación del programa. En realidad, cualquier línea seguida de un # carácter es un preprocesador. Esto incluye el include drective también. Las directivas del preprocesador se utilizan para proporcionar instrucciones generales o datos requeridos que se utilizan dentro de un programa.
Una macro es un bloque de código al que se le ha dado un nombre. Cualquier aparición de ese nombre se reemplaza cedido por el valor de la macro. Por ejemplo, definí una macro llamada AMOUNT cuyo valor es 200. Ahora, cada vez que se usa la palabra AMOUNT en el programa, se reemplaza por el número 200 antes de la compilación. A diferencia de las variables, donde los datos se almacenan realmente dentro de ellas, actúan como nombres de alias.
La sintaxis de la directiva #define es la siguiente:
#define MACRONAME value
O
#define MACRONAME (expression)
A una macro se le puede asignar un valor tanto numérico como de carácter (debe estar entre comillas). Las macros se pueden usar como cualquier otra variable constante.
También puede anular la definición de una macro usando la directiva #undef. Aquí está la sintaxis:
#undef MACRONAME
//MACRONAME can no longer be used in the program
Espero que mi respuesta haya sido útil.