Macros de predicción de bifurcación en GCC

Una de las técnicas de optimización más utilizadas en el kernel de Linux es “__builtin_expect”. Cuando trabajamos con código condicional (sentencias if-else), a menudo sabemos qué rama es verdadera y cuál no. Si el compilador conoce esta información de antemano, puede generar el código más optimizado. Veamos la definición de macro de las macros «probable()» … Continue reading «Macros de predicción de bifurcación en GCC»

C | Macro y preprocesador | Pregunta 5

#include <stdio.h> #define ISEQUAL(X, Y) X == Y int main() {     #if ISEQUAL(X, 0)         printf(«Geeks»);     #else         printf(«Quiz»);     #endif     return 0; } Salida del programa anterior? (A) Geeks (B) Quiz (C) Cualquiera de Geeks o Quiz (D) Error de tiempo de compilación Respuesta: (A) Explicación: La macro condicional #if ISEQUAL(X, 0) se expande a #if X … Continue reading «C | Macro y preprocesador | Pregunta 5»

¿Cómo funciona un Preprocesador en C?

Compilando un programa en C – Detrás de escena Un preprocesador es un software de sistema (un programa de computadora que está diseñado para ejecutarse en el hardware y los programas de aplicación de la computadora). Realiza el preprocesamiento del lenguaje de alto nivel (HLL). El preprocesamiento es el primer paso del sistema de procesamiento … Continue reading «¿Cómo funciona un Preprocesador en C?»

C | Macro y preprocesador | Pregunta 7

¿Producción? # include <stdio.h> # define scanf  «%s Geeks Quiz » int main() {    printf(scanf, scanf);    return 0; } (A) Error del compilador (B) %s Geeks Quiz (C) Geeks Quiz (D) %s Geeks Quiz Geeks Quiz Respuesta: (D) Explicación: Después de la fase de preprocesamiento de la compilación, se convertirá en la declaración printf. printf(“%s … Continue reading «C | Macro y preprocesador | Pregunta 7»

C/C++ #incluye directiva con ejemplos

#include es una forma de incluir un archivo estándar o definido por el usuario en el programa y se escribe principalmente al principio de cualquier programa C/C++. El preprocesador lee esta directiva y le ordena que inserte el contenido de un archivo de encabezado del sistema o definido por el usuario en el siguiente programa. … Continue reading «C/C++ #incluye directiva con ejemplos»

Programa C para imprimir una string sin comillas (simples o dobles) en el programa

Imprima una string sin usar comillas en ninguna parte del programa usando C o C++. Nota: no debe leer la entrada de la consola. La idea es usar el procesador de macros en C (Consulte el punto 6 de este artículo). Un token pasado a la macro se puede convertir en un literal de string usando … Continue reading «Programa C para imprimir una string sin comillas (simples o dobles) en el programa»

C | Macro y preprocesador | Pregunta 15

¿Cuál es el resultado del siguiente fragmento de código? #include<stdio.h> #define A -B #define B -C #define C 5    int main() {   printf(«The value of A is %d\n», A);    return 0; } Esta pregunta es aportada por Aastha Anand . (A) El valor de A es 4 (B) El valor de A es 5 … Continue reading «C | Macro y preprocesador | Pregunta 15»

Directiva #pragma en C/C++

Esta directiva es una directiva de propósito especial y se utiliza para activar o desactivar algunas características. Estos tipos de directivas son específicas del compilador, es decir, varían de un compilador a otro. Algunas de las directivas #pragma se analizan a continuación: #pragma startup y #pragma exit : estas directivas nos ayudan a especificar las … Continue reading «Directiva #pragma en C/C++»

Escriba una macro C PRINT(x) que imprima x

A primera vista, parece que escribir una macro en C que imprima su argumento es un juego de niños. El siguiente programa debería funcionar, es decir, debería imprimir x  c #define PRINT(x) (x) int main() {     printf(«%s», PRINT(x));     return 0; } Pero generaría un error de compilación porque se desconoce el tipo de datos de … Continue reading «Escriba una macro C PRINT(x) que imprima x»

C | Macro y preprocesador | Pregunta 13

¿Salida del siguiente programa C? #include<stdio.h> #define max abc #define abc 100    int main() {     printf(«maximum is %d», max);     return 0; } (A) máximo es 100 (B) abcimum es 100 (C) 100imum es 100 (D) abcimum es abc Respuesta: (A) Explicación: Después del procesamiento previo, el código fuente se convierte en: int main() { … Continue reading «C | Macro y preprocesador | Pregunta 13»