如何使用printf检查void函数是否成功运行?

时间:2012-09-11 18:05:15

标签: c

一位朋友告诉我,如果没有修改原始printf功能,就可以通过void 进行检查。

但我看不出你怎么做。

#include<stdio.h>

void test()
{
  int a = 1;
  int b = a;
}

main()
{
    printf("%d",test());    
}

我一直在

  

错误:无效使用void表达式

有办法吗?

2 个答案:

答案 0 :(得分:8)

我从你的编辑中看到你想要在不修改功能的情况下这样做。您可以使用逗号运算符在printf

中进行函数调用
#include <stdio.h>

void test()
{
    int a = 1;
    int b = a;
}

main()
{
    printf("%d\n", (test(), 0));

    // or even this, to be more explicit:
    printf("%s\n", (test(), "test() was called."));
}

逗号运算符计算第一个操作数 - 在本例中是函数调用 - 并丢弃结果,然后计算第二个操作数,结果是整个表达式的结果。

答案 1 :(得分:0)

一个例子是将内存指针传递给void函数,并用你需要的数据填充它,看看你的void函数是否有效。

void
test_funtion(bool *answer)
{
    answer = false;
    // do stuff
    if(error happens)
        return;
    answer = true;
    return;
}

我不知道如何使用printf来让程序知道。 只有这样才能为自己使用printf进行可视化记录,而不是机器。