C定义全局变量

程序工程中往往遇到这样的问题:某个变量是贯穿始终的,主函数以及不同的子函数都要用到这个变量,并且要调用子函数改变变量的值。这时候全局变量就起到一个桥梁作用,在函数外定义,在主函数中调用定义,在子函数A中调用并赋值,在子函数B中调用该变量,此时的值已经是改变之后的值。

用法:在主函数之前定义全局变量(不包含在任何变量里)

int pointnum;//全局变量,匹配点对个数

在主函数main中调用,要加关键字extern

extern int pointnum; //全局变量,匹配点对个数

在接下来的子函数A中也用extern调用全局变量,并将函数运行中得到的数据赋给全局变量,此时该变量的值已经被改变,无论接下来在主函数还是后面的子函数中用到,都是改变之后的值

 int A()//子函数A
  {   
  	extern int pointnum;//引用全局变量 
 	pointnum = viewMatches.size();//将匹配点个数传递给全局变量
  }

主函数在调用过子函数A之后,pointnum的值被彻底改变为viewmatches.size(),可以供子函数B使用

//调用子函数A,改变pointnum的值
A(srcImage1, srcImage2);//输入两幅图                                            
 
//调用子函数B,用到pointnum
solveab(matchpoint, pointnum, M1, M2);//传入匹配点坐标,匹配点对个数pointnum,投影矩阵
 
for (int i = 0; i < pointnum; i++)//释放matchpoint,主函数也用到pointnum
    free(matchpoint[i]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值