Argumentos de longitud variable para Macros

Al igual que las funciones, también podemos pasar argumentos de longitud variable a las macros. Para ello utilizaremos los siguientes identificadores de preprocesador. Para admitir argumentos de longitud variable en macro, debemos incluir puntos suspensivos (…) en la definición de macro. También hay un identificador de preprocesamiento «__VA_ARGS__» que se ocupa de las sustituciones de … Continue reading «Argumentos de longitud variable para Macros»

C | Macro y preprocesador | Pregunta 12

¿Predecir la salida del siguiente programa? #include <stdio.h> #define MAX 1000 int main() {    int MAX = 100;    printf(«%d «, MAX);    return 0; } (A) 1000 (B) 100 (C) Error del compilador (D) Valor basura Respuesta: (C) Explicación: Después de la etapa de preprocesamiento de la compilación, la función main() cambia a la siguiente int … Continue reading «C | Macro y preprocesador | Pregunta 12»

Macros multilínea en C

En este artículo, discutiremos cómo escribir una macro de varias líneas. Podemos escribir una macro de varias líneas igual que la función, pero cada declaración termina con «\». Veamos con ejemplo. A continuación se muestra una macro simple, que acepta el número ingresado por el usuario e imprime si el número ingresado es par o … Continue reading «Macros multilínea en C»

C | Macro y preprocesador | Pregunta 9

¿Producción? #include<stdio.h>  #define f(g,g2) g##g2  int main()  {     int var12 = 100;     printf(«%d», f(var,12));     return 0;  } (A) 100 (B) Error del compilador (C) 0 (D) 1 Respuesta: (A) Explicación: El operador ## se llama «Token-Pasting» o Operador «Fusionar». Combina dos tokens en un token. Entonces, después del preprocesamiento, la función principal se convierte en … Continue reading «C | Macro y preprocesador | Pregunta 9»