错误:一元'*'的无效类型参数(有'int') [英] error: invalid type argument of unary ‘*’ (have ‘int’)
问题描述
我试图通过引用传递错误给main函数,但是当我编译下面的代码时,我得到一个错误:
error:invalid主要代码:
main()
{
。
。
int error = -1;
foo(...,错误);
。
。
}
功能代码:
foo(...,int& error)
{
if(...)
* error = errno;
$ b $ errno是系统调用在linux中设置的标准错误。
头文件定义了整数变量errno,它由系统调用和一些库函数在发生错误时设置,以表明发生了什么问题。
不是指针,不能使用间接(取消引用)操作符运算符*
就可以了。
如果你只是想设置它的值,改变
* error = errno;
至
error = errno;
I am trying to pass error to main function using pass by reference, but when I compile the below code I get an error as
error: invalid type argument of unary ‘*’ (have ‘int’)
Main code :
main()
{
.
.
int error=-1;
foo(..., error);
.
.
}
Function Code:
foo(..., int &error)
{
if ( ...)
*error = errno;
}
errno is the standard error set from system call in linux.
The header file defines the integer variable errno, which is set by system calls and some library functions in the event of an error to indicate what went wrong.
解决方案 error
is not pointer, you can't use indirection (dereference) operator operator*
on it.
If you just want set its value, change
*error = errno;
to
error = errno;
这篇关于错误:一元'*'的无效类型参数(有'int')的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!