嵌入式学习小组
直播中

张桂兰

7年用户 1267经验值
私信 关注

请问ABC三个函数中的变量都是存储在任务的堆栈上面的吗?

假如我在A函数中使用了static类型的变量,在B函数中使用了全局变量,在C函数中只使用了局部变量,我将这三个函数都放在一个任务中,那么当任务切换过后,ABC三个函数中的变量都是存储在任务的堆栈上面的吗?任务切换过后对我这三个函数中的变量有什么影响呢?

回帖(6)

贾绰

2019-7-31 07:00:44
找找可重入函数的资料看看就可以了。
多任务中,尽量多使用可重入函数。当然也可以用不可重入函数 ,注意互斥保护就可以啦。
举报

洪茗苞

2019-7-31 07:15:40
只有C函数的变量,是存储在任务的堆栈中。A函数B函数都是不可重入函数。
举报

符筹荣

2019-7-31 07:29:14
那在任务切换的时候,我的局部静态变量和全局变量会不会因为任务切换而有所改变呢?局部变量是不是就相当于局部静态变量了,任务切换回来的时候仍是上次任务切换之前时候的值?
举报

夏涌革

2019-7-31 07:39:54
你是不是在另一个任务里也调用了A函数B函数?另一个任务也会改变局部静态变量和全局变量的值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分