// размер копируемого поля: "cnt" бит,
// начальная позиция источника копирования: номер бита "src",
// начальная позиция целевого поля копирования: номер бита "dst",
// В процессе копирования проверяется выход за пределы массива по
// обоим полям. Битовые поля могут быть и перекрывающимися.
void CopyBitFieldArray( unsigned char* arr, unsigned char src,
unsigned char dst, unsigned char cnt ) {
while( cnt-- ) {
CopyOneBitArray( arr, src, dst );
src++;
if( src >= (MAX_ARRAY_BYTE * KOL_BITS_INTO_BYTE)) {
src -= (MAX_ARRAY_BYTE * KOL_BITS_INTO_BYTE);
}
dst++;
if( dst >= (MAX_ARRAY_BYTE * KOL_BITS_INTO_BYTE)) {
dst -= (MAX_ARRAY_BYTE * KOL_BITS_INTO_BYTE);
}
}
}