C++ 形参与实参的传递

函数调用形参、实参的问题

函数调用时,参数分两种 一种是送进去的参数,一种是想从里面得到的参数。比如:

ExternalRectangle((unsigned char*)(frame->imageData), ObjInfo,widthstep,alarm_flag,&ROI_left,&ROI_right,&ROI_top,&ROI_bottom);

对于这个函数来说:我们需要送进去的参数是rame->imageData ObjInfo,widthstep,

从里面得到的参数是:alarm_flag,&ROI_left,&ROI_right,&ROI_top,&ROI_bottom

一个函数的改动需要动三个地方:

头文件+调用的部分+程序实现的部分

头文件:

//void ExternalRectangle(unsigned char* pRGBIn, MS_ObjectInfo *ObjInfo, int ObjCount, int widthStep);
void ExternalRectangle(unsigned char* pRGBIn, MS_ObjectInfo *ObjInfo, int ObjCount, int widthStep,bool &alarm_flag1,int *alarm_left,int *alarm_right,int *alarm_top,int *alarm_bottom);

函数实现部分:

void ExternalRectangle(unsigned char* pRGBIn, MS_ObjectInfo *ObjInfo, int i1, int widthStep,bool &alarm_flag1,int *alarm_left,int *alarm_right,int *alarm_top,int *alarm_bottom)

2.

*alarm_left= ObjInfo[i1].TarBox.left;

*alarm_right=ObjInfo[i1].TarBox.right;

*alarm_top=ObjInfo[i1].TarBox.top;

 *alarm_bottom=ObjInfo[i1].TarBox.bottom;

alarm_left= &ObjInfo[i1].TarBox.left;

alarm_right=&ObjInfo[i1].TarBox.right;

alarm_top=&ObjInfo[i1].TarBox.top;

 alarm_bottom=&ObjInfo[i1].TarBox.bottom;

的区别:

前者可以实现形参与实参的传递。

下面只能在函数的实现里面,打印出来的数据是对的,不能传递到外部。

3. alarm_flag 被覆盖掉。

    改了函数的结构:

4. 现在的问题是:每次检测ROI 区域之后,框自动缩小。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值