bear_yh 发表于 2021-2-23 10:38:05

关于:freertos中的任务1中的某个函数里定义的局部变量的值的疑问。

freertos中的任务1中的某个函数里定义的局部变量
unsigned char abc=0;
abc =2;

在任务1被切换出后,再从其他任务2调度回任务1,
这个时候任务1的局部变量abc的值是重新被初始化成了0,还是2?

caicaptain2 发表于 2021-2-23 11:14:27

还是2。 只要任务没有被人为终止/删除,它的局部变量一直都在的。

bear_yh 发表于 2021-2-23 13:25:35

caicaptain2 发表于 2021-2-23 11:14
还是2。 只要任务没有被人为终止/删除,它的局部变量一直都在的。

那不相当于static定义的变量了?

yy-AA55 发表于 2021-2-24 17:09:45

发生任务切换时,这个任务函数的局部变量值保存在任务栈里,只要任务还存在,任务栈没被释放,这个局部变量就一直都在,是不是可以这么理解?

snakeemail 发表于 2021-2-26 22:02:28

任务就是函数,函数不退出,局部变量都在栈里面,开心的待着。

caoenq 发表于 2022-3-11 13:42:41

bear_yh 发表于 2021-2-23 13:25
那不相当于static定义的变量了?

可以这么认为。

13756039532 发表于 2022-8-29 17:20:17

2,局部变量压到任务栈里面了。就是创建任务时定义的那个数组就是用来干这个事情的。
页: [1]
查看完整版本: 关于:freertos中的任务1中的某个函数里定义的局部变量的值的疑问。