【问题标题】:How to obtain the real output from a C function? [closed]如何从 C 函数中获取实际输出? [关闭]
【发布时间】:2014-05-19 15:20:10
【问题描述】:

我很难从 C 函数中获得真正的输出。例如:

int max3(int a, int b, int c){
    if ((a>b)&&(a>c))
       return a;
    if ((b>c)&&(b>a))
       return b;
    return c;       
}

您能告诉我如何指定实际输出(例如工具、算法等)吗? 在上面的示例中,实际输出为 6(如果 (a,b,c) = (1,2,6))。 非常感谢。

【问题讨论】:

  • 很不清楚你所说的“真实”输出。请解释一下。
  • 它没有按预期工作(即返回 6)?
  • 如果你想知道方法输出什么,运行它然后你就会知道
  • @YvesDaoust :我的工具接受用 C 编写的输入(CUnit);该工具是用Java编写的。具体来说,我必须找到一种分析CUnit的方法,以便从java环境中的函数中获取返回值。
  • 你的意思是你不能从错误报告中检索到函数实际计算的值吗?如果为真,一个解决方案是定义您自己的CU_ASSERT 宏,使其不仅检查返回值,还格式化(sprintf)字符串缓冲区中的值,然后将其传递给CU_assertImplementation

标签: c testing cunit


【解决方案1】:

我可能会写它,因为它很简单,使用三元运算符:

int max3(int a, int b, int c){       
    if (a>b)
       return (a>c)?a:c;
    else 
       return (b>c)?b:c;
}

【讨论】:

  • 更容易阅读。 +1
  • 或者以一种概括的方式: if (b > a) a= b;如果 (c > a) a= c;如果 (d > a) a= d; ...返回一个;
猜你喜欢
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多