我有这个宏和这个主要功能。
#define DEBUG_INFO(format, args...) \
fprintf(stdout, "%12s: %3d: %s ", __FILE__, __LINE__, green), \
fprintf(stdout, format, ##args)
int32_t main()
{
if (server_init())
{
DEBUG_INFO("Child process wasnt created");
}
return 0;
}
当我的主要功能开始工作时。它将工作返回server_init()的值。我也在server_init()中使用了DEBUG_INFO。宏观线之后。在server_init()中,Macro没有写任何东西。但是如果server_init()返回False值。那么main函数的宏会写错误。为什么在功能上不起作用。
答案 0 :(得分:1)
您可以调用setbuf(stdout, NULL)
来禁用stdout
上的输出缓冲,或者只需输出\n
来刷新输出缓冲区。第二种选择是可取的。