一位朋友告诉我有一种方法可以在printf
不修改原始void
功能的情况下进行检查。
但我看不出你怎么能做到。
#include<stdio.h>
void test()
{
int a = 1;
int b = a;
}
main()
{
printf("%d",test());
}
我不断得到
错误:无效表达式的使用无效
有没有办法做到这一点?
一位朋友告诉我有一种方法可以在printf
不修改原始void
功能的情况下进行检查。
但我看不出你怎么能做到。
#include<stdio.h>
void test()
{
int a = 1;
int b = a;
}
main()
{
printf("%d",test());
}
我不断得到
错误:无效表达式的使用无效
有没有办法做到这一点?
我从您的编辑中看到您希望在不修改功能的情况下执行此操作。您可以使用逗号运算符在 a 中进行函数调用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."));
}
逗号运算符计算第一个操作数 - 在这种情况下是您的函数调用 - 并丢弃结果,然后计算第二个操作数,结果是整个表达式的结果。
一个例子是将内存指针传递给 void 函数并用您需要的数据填充它,以查看您的 void 函数是否有效。
void
test_funtion(bool *answer)
{
answer = false;
// do stuff
if(error happens)
return;
answer = true;
return;
}
我不明白您将如何使用 printf 让程序知道。只有这样,您才能使用 printf 为自己而非机器进行可视化日志记录。