📜  如何在 C 的 main() 中更改 printf() 的输出?

📅  最后修改于: 2022-05-13 01:54:54.681000             🧑  作者: Mango

如何在 C 的 main() 中更改 printf() 的输出?

要更改 main() 中 printf() 的输出,我们可以使用宏参数。

#define 宏可用于此任务。这个宏是在函数内部定义的。虽然可以使用#define而不在函数中声明它,但在这种情况下总是会更改 printf()。需要首先调用该函数来更改 main() 中 printf() 的输出。

考虑以下程序。更改程序,使 printf() 的输出始终为 10。

C
// C Program to demonstrate changing the output of printf()
// in main()
#include 
 
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;
}


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


不允许更改 main()。只有 fun() 可以更改。现在,考虑使用宏参数的以下程序,

C

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

输出

10