Использование переменных цикла после цикла
От: Khimik  
Дата: 14.09.23 07:33
Оценка:
Мне надо перевести фрагмент кода с C++ на Delphi. В частности эту функцию:

static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
    int i, num;
    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
    num_of_bytes = 1;
    bytes[0] = 1;
    num_of_bits = 0;
    for (i=0; i < num_of_ints; i++) {    
    tmp = 0;
    for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
        tmp = bytes[bytecnt] * sizes[i] + tmp;
        bytes[bytecnt] = tmp & 0xff;
        tmp >>= 8;
    }
    while (tmp != 0) {
        bytes[bytecnt++] = tmp & 0xff;
        tmp >>= 8;
    }
    num_of_bytes = bytecnt;
    }
    num = 1;
    num_of_bytes--;
    while (bytes[num_of_bytes] >= num) {
    num_of_bits++;
    num *= 2;
    }
    return num_of_bits + num_of_bytes * 8;

}


Тут какое-то вычисление, сколько бит понадобится на хранение нескольких чисел указанного максимального размера. И меня смутило, что переменная bytecnt, которая вначале служит счётчиком цикла, используется также после цикла. Это нормально в C++?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.