Supongamos que alguien escribe una macro de incremento (es decir, que incrementa el valor en uno) de las siguientes maneras:
#define INC1(a) ((a)+1) #define INC2 (a) ((a)+1) #define INC3( a ) (( a ) + 1) #define INC4 ( a ) (( a ) + 1)
Elija la declaración correcta para las macros anteriores.
(A) Solo INC1 es correcto.
(B) Todos (es decir, INC1, INC2, INC3 e INC4) son correctos.
(C) Solo INC1 e INC3 son correctos.
(D) Solo INC1 e INC2 son correctos.
Respuesta: (C)
Explicación: En C, para las macros con argumentos, no puede haber ningún espacio entre el nombre de la macro y el paréntesis de apertura . Es por eso que solo INC1 e INC3 son correctos. Básicamente, «#define INC2 (a) ((a)+1)» da como resultado la expansión «INC2» a «(a) ((a)+1)», que no es la expansión deseada.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA