const int bufsize = 256; unsigned char ringbuffer[bufsize]; unsigned char *ringbuffer_a = ringbuffer; void add_byte(unsigned char byte) { ringbuffer_a++; // The original code checks just the lower byte. if (ringbuffer_a == ringbuffer + bufsize + 1) ringbuffer_a = ringbuffer; *ringbuffer_a = byte; }