首页 > 解决方案 > 代码的泛化

问题描述

我正在开发一个小型实时操作系统项目,但遇到了一个小问题。

void printOutput(void)                                       
{                                                             
   Log_info2("Fib(%d) = %d", FIB_N , cur) ;               
   System_printf("Fib(%d) = %d", FIB_N , cur) ;                   
   System_flush() ;                                                            
}

如您所见,此函数使用完全相同的参数调用 Log 和 printf 函数。我的问题是 - 有没有办法让这段代码更通用?

我很感激你的想法。谢谢

标签: crtosgeneralization

解决方案


您可能只需要一个小小的简化。

void printOutput(void)                                       
{
   char const* format = "Fib(%d) = %d";
   Log_info2(format, FIB_N , cur);
   System_printf(format, FIB_N , cur) ;
   System_flush();
}

进一步简化以减少代码重复。

void printOutput(void)
{
   char message[200];  // Make it large enough for your neeeds.
   sprintf(message, "Fib(%d) = %d", FIB_N , cur);

   Log_info2(message);
   System_printf(message) ;
   System_flush();
}

推荐阅读