Lenguaje C: directiva #error

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Lenguaje C: directiva #error

Este tutorial de C explica cómo usar la directiva de preprocesador #error en el lenguaje C.

describir

En el lenguaje de programación C, la directiva #error hace que el preprocesamiento se detenga en el punto donde se encuentra la directiva. La información que sigue a la directiva #error se emite como un mensaje antes de detener el preprocesamiento.

sintaxis

La sintaxis de la directiva #error en lenguaje C es:

#error message

mensaje El mensaje a enviar antes de detener el preprocesamiento.

ejemplo

Veamos cómo usar la directiva #error en un programa C.

El siguiente ejemplo muestra la salida de la directiva #error:

/* Example using #error directive by TechOnTheNet.com */

#include <stdio.h>
#include <limits.h>

/* 
 * Calculate the number of milliseconds for the provided age in years
 * Milliseconds = age in years * 365 days/year * 24 hours/day, 60 minutes/hour, 60 seconds/min, 1000 millisconds/sec
 */
#define MILLISECONDS(age) (age * 365 * 24 * 60 * 60 * 1000)

int main()
{
   /* The age of TechOnTheNet in milliseconds */
   int age;

   #if INT_MAX < MILLISECONDS(12)
   #error Integer size cannot hold our age in milliseconds
   #endif

   /* Calculate the number of milliseconds in 12 years */
   age = MILLISECONDS(12);

   printf("TechOnTheNet is %d milliseconds oldn", age);

   return 0;
}

En este ejemplo, usamos el tipo de datos int para mantener la antigüedad de TechOnTheNet en milisegundos. El valor máximo del tipo de datos int es INT_MAX, que se define en el archivo de encabezado limits.h y tiene un valor de 2^31 – 1 en los sistemas de 32 y 64 bits. (Vea aquí otros tipos de variables y sus tamaños).

la declaración #si INT_MAX < MILISEGUNDOS(12) Evalúa si el tipo de datos int es lo suficientemente grande para almacenar la edad en milisegundos. De lo contrario, el procesador generará el siguiente mensaje de error:

error: Integer size cannot hold our age in milliseconds

Debido a un error, la compilación del programa no se completará y, por lo tanto, no se creará el programa ejecutable.

Un uso típico de la directiva #error es evitar la compilación en presencia de una condición conocida, lo que haría que el programa no se ejecutara correctamente si se completa la compilación. (Por ejemplo, el código fuente C está diseñado para una plataforma específica y se compila en una plataforma incompatible).

(Visited 8 times, 1 visits today)