我有两个分别实现编码和解码的函数:
void
delta_encode (char *buffer, const unsigned int length)
{
char delta = 0;
char original;
unsigned int i;
for (i = 0; i < length; ++i)
{
original = buffer[i];
buffer[i] -= delta;
delta = original;
}
}
void
delta_decode (char *buffer, const unsigned int length)
{
char delta = 0;
unsigned int i;
for (i = 0; i < length; ++i)
{
buffer[i] += delta;
delta = buffer[i];
}
}
我不喜欢这些的是它们非常相似,除了 += 与 -= 部分。有没有办法将它们组合成一个函数,它会询问用户是要编码还是解码,并分别选择 -= 或 += 版本。如果有,它的代码会是什么样子?如果有几种方法可以做到这一点,哪种方法最好?