¿Cómo cambiar la salida de printf() en main() en C?

Para cambiar la salida de printf() en main(), podemos usar Argumentos Macro.

#define macro se puede utilizar para esta tarea. Esta macro se define dentro de la función. Aunque se puede usar #define sin declararlo en la función, en ese caso siempre se cambiará printf(). La función debe llamarse primero para cambiar la salida de printf() en main().

Considere el siguiente programa. Cambie el programa para que la salida de printf() sea siempre 10. 

C

// C Program to demonstrate changing the output of printf()
// in main()
#include <stdio.h>
 
void fun()
{
    // Add something here so that the printf in main prints
    // 10
}
 
// Driver Code
int main()
{
    int i = 10;
    fun();
    i = 20;
    printf("%d", i);
    return 0;
}

No está permitido cambiar main(). Solo se puede cambiar fun(). Ahora, considere el siguiente programa usando Argumentos Macro,

C

// C Program to demonstrate the use of macro arguments to
// change the output of printf()
#include <stdio.h>
 
void fun()
{
#define printf(x, y) printf(x, 10);
}
 
// Driver Code
int main()
{
    int i = 10;
    fun();
    i = 20;
    printf("%d", i);
    return 0;
}

Producción

10

Complejidad de tiempo: O(1)

Espacio Auxiliar : O(1)

Este artículo es una contribución de Abhay Rathi . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *