怎么把线程中的变量的值传给另一个文件

时间:2022-01-26 20:40:24
在serial.h中声明了static volatile int g_iShortStatus
serial.cpp中
int Exec_Get_Op_Status(void)
{
return g_iShortStatus;
}
而在主对话框cpp中开了一个线程循环读串口并把值赋给g_iShortStatus,但是加断点在上面return g_iShortStatus加断点发现值没有传过来,怎么回事,而我把变量和函数都放在主对话框文件中就可以赋值,怎么办?

6 个解决方案

#1


没做线程同步吧,可能该线程并未来得及执行

#2


引用 1 楼 xuddk727 的回复:
没做线程同步吧,可能该线程并未来得及执行

我在读串口的线程中加了断点g_iShortStatus是有值得,只是不知道为什么不能传到另一个文件中,怎么加同步呢?

#3


引用 2 楼 dingshanwei123 的回复:
Quote: 引用 1 楼 xuddk727 的回复:

没做线程同步吧,可能该线程并未来得及执行

我在读串口的线程中加了断点g_iShortStatus是有值得,只是不知道为什么不能传到另一个文件中,怎么加同步呢?


贴上代码看看吧!

#4


另一个文件中是否能访问到全局变量

#5


static volatile int g_iShortStatus
你加static的话,这个变量只能限制在改区域内使用。。

#6


已经弄好了 5楼说的对 在serial.h中定义成static了,改成extern就行了

#1


没做线程同步吧,可能该线程并未来得及执行

#2


引用 1 楼 xuddk727 的回复:
没做线程同步吧,可能该线程并未来得及执行

我在读串口的线程中加了断点g_iShortStatus是有值得,只是不知道为什么不能传到另一个文件中,怎么加同步呢?

#3


引用 2 楼 dingshanwei123 的回复:
Quote: 引用 1 楼 xuddk727 的回复:

没做线程同步吧,可能该线程并未来得及执行

我在读串口的线程中加了断点g_iShortStatus是有值得,只是不知道为什么不能传到另一个文件中,怎么加同步呢?


贴上代码看看吧!

#4


另一个文件中是否能访问到全局变量

#5


static volatile int g_iShortStatus
你加static的话,这个变量只能限制在改区域内使用。。

#6


已经弄好了 5楼说的对 在serial.h中定义成static了,改成extern就行了