- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
void shiftOrder(int* _order, int _count, int _column)
{
int i=_count-1;
while ( _order[i]!=_column )
i--;
_order[_count]=_order[i];
memcpy( _order+i, _order+i+1, (_count-i)*sizeof(int) );
return;
}
void returnOrder(int* _order, int _count, int _column)
{
int i=0;
int j=0;
int order[MAX_COLS];
for ( i=0; i< _count; i++)
{
if ( m_ColInfo[i].visible )
{
order[j]=i;
j++;
}
}
i=j;
while ( j<_count )
{
if ( _order[i-1]!=_column )
{
order[j]=_order[i-1];
j++;
}
i++;
}
memcpy(_order, order, MAX_COLS*sizeof(int));
return;
}
Красивый приём, только к чему тут 7я строчка?
В чем красота ?
При (_count-i) > 1 будет не пойми что, т.к. области перекрываются.
Но тут-то речь совсем не об оптимизации. И ассемблер не к месту, тем более что речь идет о Си.
Во что развернутся те или иные функции зависит от компилятора и его настроек.
С каким запасом? Берутся смежные элементы и накладываются друг на друга.
Косяк в явном виде.
>теоретически :)
А должно быть практически.
Это что ещё за термин?
Была машинопись, а теперь человекочитаемость :)
в данном случае 5 - человекочитаемая величина, а 4 - индекс последнего элемента.
PS торфянники всё ещё действуют :)
Косяк в явном виде.
До тебя не дошло что ли, что так и задумано, а , минусатор?
Ещё раз повторю, если не понял, что когда области пересекаются memcpy() не подходит.
А в данном случае они будут пересекаться когда (_count-i) > 1.
P.S. А что тебе минусы глаза режут? Так не пиши всякий бред и минусов не будет.
7я строчка не нужна, проверь
_order+i + (_count - i) -- это вообще откуда?
_count -- *количество* элементов. индекс последнего -- _count-1
7й строкой копируем iй элемент /за пределы/ массива
8й копируем элементы с i+1 в i в количестве сколько элементов от iтого до конца с учётом толькочто скопированного. -- К.О.
или я всё ещё чего-то не понял?
чтоб различать их. можно и так this->name=name
----
К.О.
и пример выдран из контекста, так что да, конкретно тут нет плюсов.
(даже имена функций говорят, об этом)
подчёркивание в начале:
- мб аффтор таким образом хотел выделить: "это параметры функции"
а функции на самом деле - методы класса. просто класс опустил за ненадобностью.
Члены класса с подчеркиванием.
И как советует Саттер - лучше в конце.
А ещё они классы как CClass обзывают.
И да, я объектно-ориентированное программирование с MFC начинал.