¿Cómo imprimir un nombre de variable en C?

¿Cómo imprimir y almacenar un nombre de variable en una variable de string? Le recomendamos encarecidamente que minimice su navegador e intente esto usted mismo primero. En C, hay una directiva #, también llamada ‘Operador de string’, que hace esta magia. Básicamente, la directiva # convierte su argumento en una string. #include <stdio.h> #define getName(var)  … Continue reading «¿Cómo imprimir un nombre de variable en C?»

C | Macro y preprocesador | Pregunta 14

¿Cuál es la salida del siguiente programa? #include <stdio.h> #define macro(n, a, i, m) m##a##i##n #define MAIN macro(n, a, i, m)    int MAIN() {     printf(«GeeksQuiz»);     return 0; } (A) Error del compilador (B) GeeksQuiz (C) PRINCIPAL (D) Respuesta principal : (B) Explicación: El programa tiene un preprocesador que reemplaza «PRINCIPAL» con «macro (n, a, … Continue reading «C | Macro y preprocesador | Pregunta 14»

¿Diferencia entre #define y const en C?

#define es una directiva de preprocesador . Los datos definidos por la definición de macro #define se procesan previamente, de modo que su código completo pueda usarlos. Esto puede liberar espacio y aumentar los tiempos de compilación. Las variables constantes se consideran variables y no definiciones de macros.   Para resumir : el compilador maneja los … Continue reading «¿Diferencia entre #define y const en C?»

C | Macro y preprocesador | Pregunta 4

#include <stdio.h> #define X 3 #if !X     printf(«Geeks»); #else     printf(«Quiz»);     #endif int main() {         return 0; } (A) Geeks (B) Cuestionario (C) Error del compilador (D) Error de tiempo de ejecución Respuesta: (C) Explicación: Un programa se convierte en ejecutable siguiendo los siguientes pasos 1) Preprocesamiento 2) Conversión de código C a código objeto … Continue reading «C | Macro y preprocesador | Pregunta 4»

Tipos de directivas pragma en C

Directivas pragma: la directiva pragma se usa para controlar las acciones del compilador en una parte particular de un programa sin afectar el programa como un todo.  Las directivas pragma se incluyen en el programa C para que surtan efecto. El efecto de pragma se aplicará desde el momento en que se incluye hasta el … Continue reading «Tipos de directivas pragma en C»

C | Macro y preprocesador | Pregunta 2

#include <stdio.h> #if X == 3     #define Y 3 #else     #define Y 5 #endif    int main() {     printf(«%d», Y);     return 0; } ¿Cuál es la salida del programa anterior? (A) 3 (B) 5 (C) 3 o 5 dependiendo del valor de X (D) Error de tiempo de compilación Respuesta: (B) Explicación: A primera vista, … Continue reading «C | Macro y preprocesador | Pregunta 2»

Macro CRASH() – interpretación

A continuación se muestra un pequeño fragmento de código de un proyecto de código abierto, #ifndef __cplusplus    typedef enum BoolenTag {    false,    true } bool;    #endif    #define CRASH() do { \       ((void(*)())0)(); \    } while(false)    int main() {    CRASH();    return 0; } ¿Puedes interpretar el código anterior? Es simple, a continuación … Continue reading «Macro CRASH() – interpretación»

C | Macro y preprocesador | Pregunta 10

¿Qué archivo se genera después del procesamiento previo de un programa C? (A) .p (B) .i (C) .o (D) .m Respuesta: (B) Explicación: Después del procesamiento previo de un programa en C, se genera un archivo .i que se pasa al compilador para Compilacion. Publicación traducida automáticamente Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona … Continue reading «C | Macro y preprocesador | Pregunta 10»

La macro OFFSETOF()

Sabemos que los elementos de una estructura se almacenarán en el orden secuencial de su declaración. ¿Cómo extraer el desplazamiento de un elemento en una estructura? Podemos hacer uso de offsetof macro. Por lo general, llamamos tipos de estructura y unión (o  clases con constructores triviales ) como tipos de datos simples (POD), que se … Continue reading «La macro OFFSETOF()»

C | Macro y preprocesador | Pregunta 14 – Part 1

#include <stdio.h> #define get(s) #s    int main() {     char str[] = get(GeeksQuiz);     printf(«%s», str);     return 0; } (A) Error del compilador (B) #GeeksQuiz (C) GeeksQuiz (D) GGeeksQuiz Respuesta: (C) Explicación: El operador de preprocesamiento ‘#’ se usa para convertir un argumento de string en una constante de string. Cuestionario de esta pregunta Publicación traducida … Continue reading «C | Macro y preprocesador | Pregunta 14 – Part 1»