错误:一元'*'的无效类型参数(有'int') [英] error: invalid type argument of unary ‘*’ (have ‘int’)

查看:701
本文介绍了错误:一元'*'的无效类型参数(有'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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆