gpt4 book ai didi

c++ - 函数的隐藏/锚定参数?

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:00 24 4
gpt4 key购买 nike

我想要一个额外的函数来检查输入函数是否返回 0。如果返回 0,额外的函数将退出程序并打印它发生的行数。我写了这个:

 void check( int function_return_value, int line_with_error )
{
if(!function_return_value )
{
printf("Error on line %d\n", line_with_error );
exit(EXIT_FAILURE);
}
}

line_with_error 在我的主代码文件中收到一个 LINE 宏的值,它看起来像这样

check( function(), __LINE__ );

但是我不希望“检查”函数接受 2 个参数,只有 1 个带有函数返回值。有没有办法以某种方式“隐藏”第二个参数,以便函数知道 LINE 宏将始终存在,但我不必每次都写它?

附言LINE 将取代码中所写行的行号。我不能把它放在“检查”函数中,因为它总是引用函数声明中的行

最佳答案

使用宏:

#define check(x) (check_2args((x), __LINE))

void check_2args( int function_return_value, int line_with_error )
{
if(!function_return_value )
{
printf("Error on line %d\n", line_with_error );
exit(EXIT_FAILURE);
}
}

关于c++ - 函数的隐藏/锚定参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58227476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com