Protothreads:临时变量的可用与不可用
- 临时变量不能作为
PT_*
宏内调用的函数的入参数。 - 临时变量不能跨越
PT_*
系列宏。 - 临时变量可以存储
PT_*
宏中函数的返回值,但是不能传递给下一个 PT_*
宏。 - 函数参数可以使用,因为每次进入函数都会传入正确的值,但是修改过的传值参数的值不能跨
PT_*
宏。 - GCC 不同的优化级别对未初始化变量引用的警告不一样!有些优化会警告,有些优化不会警告。
- 基本原则是:再次进入协程时,应当能恢复上次退出协程时的状态。如果后一次进入协程时还要引用上一次退出协程时赋值过的变量,那么该变量就不能是临时变量。