老师您好,
习题2答案中,tempIndex变量、tempCodeOK 变量都采用了临时变量;我的程序中采用了InOut变量。关于这一方面,我还有些疑惑。
关于临时变量,2.4.4.2中,有“由于程序中辅助布尔变量涉及到了跨周期读取,所以无法声明为临时变量,所有变量都得声明为参数”;而2.4.8.3,有“当块内指令结束,分配的局部堆栈资源释放,返回主调程序块继续执行”。“局部堆栈的存储空间是公用的,物理地址和变量不一一对应,所以不能跨周期读取数据”。
关于我的理解:因为习题2采用了循环程序架构,在程序循环内,块调用没有结束,所以tempIndex变量、tempCodeOK 变量,在此跨周期是没有问题的;其它情况下,是不是就的采用InOut变量来处理。