我有一个不太明白的功能
从0到110共有109个地址。
这段代码如何将文本向左移动?
b=0;
while(b<109)
{
Display_Buffer[b] = Display_Buffer[b+1];
b++;
}
如果 b 从 0 开始,那么 b+1 应该将文本滚动到右边 ???还是我弄错了?因为在 0 处,b+1 表示地址是 1,如果是 b-1,那么地址应该是 110(因此向左滚动)...但是这里不是这种情况,有人可以提供一个粗略的解释吗?
display_buffer 包含存储在其数组中的字符串信息。
--
编辑
谢谢大家!!如果我用 [b-1] 替换 Display_Buffer[b+1] 会怎样……这会逆转这个过程吗?怎么样?
好吧,我意识到我必须添加 b=109 和 while (b!=0) .. 否则就没有意义了。
但是,如果 Display_Buffer[109]=Display_Buffer[108],这是否意味着它会产生与你们回答的相同但相反的效果?
最佳答案
每个位置都分配了它右侧位置的值,因此效果是向左滚动。
想想这个很棒的 ASCII 艺术:
0 1 2 3 4 Before: [h][e][l][l][o] After: [e][l][l][o][ ]
位置 0 的槽被设置为槽 1 的值,因此 'h' 变为 'e',依此类推。
关于c - 向左移动缓冲区,在 LED 面板上滚动字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194132/