c - 代码的泛化
问题描述
我正在开发一个小型实时操作系统项目,但遇到了一个小问题。
void printOutput(void)
{
Log_info2("Fib(%d) = %d", FIB_N , cur) ;
System_printf("Fib(%d) = %d", FIB_N , cur) ;
System_flush() ;
}
如您所见,此函数使用完全相同的参数调用 Log 和 printf 函数。我的问题是 - 有没有办法让这段代码更通用?
我很感激你的想法。谢谢
解决方案
您可能只需要一个小小的简化。
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();
}
推荐阅读
- python - 将张量转换为向量
- java - 使用另一个 JFrame 中的 JTable 中的数据更新 JFrame - JAVA - Eclipse IDE
- php - 如何将 XML 字符串转换为具有不同结构的 PHP 数组?
- macos - 无法验证帐户名或密码 mac high sierra 10.13.4
- unit-testing - 用 Mocha 进行单元测试的“之前”钩子有什么意义?
- windev - 创建和编写 PDF Webdev
- android - React Native DrawerLayout:孩子的阴影出现在iOS上但不在Android上
- python - 为什么没有捕获到多父异常?
- xml - XML 包含未知编码的奇怪字符
- java - 如何使用 Http 请求执行 servlet?