函数定义时候想调用其他函数中的局部变量怎么办

void CDioBitDlg::OnButtonDmmInputDiBit()
{
UpdateData(TRUE);
short DiData;
short DiSignal;
……
}
在线程函数中
UINT ThreadProc(LPVOID lpParam)
{
……}
我需要调用第一个函数中的DiData变量,可是又不想因为这两个函数调用就把它定义为全局的,有什么好方法吗

局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。
例如:
int f1(int a) /*函数f1*/
{
int b,c;
……
}
a,b,c有效
int f2(int x) /*函数f2*/
{
int y,z;
……
}
x,y,z有效
main()
{
int m,n;
……
}
m,n有效
在函数f1内定义了三个变量,a为形参,b,c为一般变量。在 f1的范围内a,b,c有效,或者说a,b,c变量的作用域限于f1内。同理,x,y,z的作用域限于f2内。m,n的作用域限于main函数内。关于局部变量的作用域还要说明以下几点:
1) 主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。
2) 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
3) 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。如在前例中,形参和实参的变量名都为n,是完全允许的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-27
void CDioBitDlg::OnButtonDmmInputDiBit()
{
UpdateData(TRUE);
short DiData;
short DiSignal;
……
// 增加 GetData(); SetData(short d);
// 增加 GetSignal(); SetSignal(short s);
}追问

详细点,GetData()怎么定义?

追答

short GetData();
{
return DiData;
}

SetData(short d)
{
DiData=d;
}

GetSignal(); SetSignal(short s); 如法炮制。

python中使用闭包及修改外部函数的局部变量
外部变量的使用 在普通函数中,虽然可以直接使用全局变量,但是不可以直接修改全局变量。从变量的作用域来说,一旦你尝试修改全局变量,那么就会尝试创建并使用一个同名的局部变量。因此,如果你需要在普通函数中修改全局变量,需要使用global 同样的,如果你希望通过定义在内部的函数去修改其外部函数的变量,那...

浅析一个函数调用另一个函数的变量
闭包就不多说了,一个函数内部 定义 (不是调用)另一个函数 内部函数可调用外部函数的变量,作用域链的延长 改写 function b(){ var num=3; return num; } a();一般来说,a是复用的函数,才会有此类用法,传参实现即可。深入浅出妙用 Javascript 中 apply、call、bind 学习Ja...

...定义了两个函数def A(),def B(),如果B想使用A中的变量,要怎么做,小 ...
感觉不行,局部变量要别的函数用只有一个办法,不过我没成功过,就是用global,变成全局,然后再global到局部给下个def用 最好还是把你要的变量,做成别的函数的结果,然后defA()和defB()都去调用是最好的,也方便改 比如这样

JS函数如何调用别的函数变量。
只要是被同一个html文件引用,那么他就是相通的直接使用就行,比如a.html同时引用b.js和c.js b.js写函数test()c.js可以直接调用test()如果html没有同时引用写两个,你可以自己在b.js中写document.write("");然后就可以调用函数了。

C++ 一个函数怎么使用另一个函数中变量的值
1、C++的函数也保存在内存中,所以可以使用指针访问函数地址。2、声明函数指针,其方法与函数原型差不多,以下为一个函数原型。3、程序中声明了一个函数指针,指针类型为整型。4、获取一个函数的地址,只要使用函数名即可。5、使用函数指针调用函数,与普通指针类似,可以用(*fq)来间接调用指向的函数。6...

在C语言中如何使一个函数使用另一个函数中的变量而与其它的函数无...
这个fp是局部变量,没有办法和其他函数共享,可以使用的解决方法为:1、声明为全局变量,不过的确不好 2、作为参数传递,这样要增加一个形参

Java两个函数里的变量如何相互调用,在同一个类里
如果要调用的是类成员变量,那么类中的所有方法都可以访问、修改它们。如果要调用的是方法中的局部变量,那么只能通过返回值或参数传递,例如fun1中的变量a要传递到fun2,就在fun1中调用fun2,并传递a作为fun2的参数。

...了全局变量,函数内部定义了同名同类型的局部变量,函数内引用这个变量...
就是说编译器从变量引用处以最近逻辑距离开始搜索,找到后则开始使用停止则停止搜索;如果查找失败则编译出错。举个例子来说,就是优先引用函数内部的(逻辑距离最近),其次引用同一个源文件中全局的,如果函数内部、同一个源文件中没有,再引用包含文件中的。返回值也是对变量的引用,当然是局部变量。 本回答由提问者推荐...

matlab中怎样让一个函数调用另一个函数的的变量?
最简单的办法是把那个变量设置成全局变量 global a;%先声明 a = ...%再赋值

C语言如何定义函数,函数中要调用其他变量!
a为main函数中的局部变量,在函数zjsx中是不可见的,应该以入参的形式把a传入zjsx中。void zjsx(int a);int main(){ int a=0;zjsx(a);return 0;} void zjsx(int a){ printf("a的值为%d\\n",a);}

相似回答