- 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;
}
TarasB 30.07.2010 20:42 # −2
Красивый приём, только к чему тут 7я строчка?
absolut 30.07.2010 21:02 # +1
В чем красота ?
При (_count-i) > 1 будет не пойми что, т.к. области перекрываются.
TarasB 31.07.2010 12:38 # −2
absolut 31.07.2010 15:49 # 0
TarasB 31.07.2010 18:25 # 0
absolut 31.07.2010 20:06 # 0
Но тут-то речь совсем не об оптимизации. И ассемблер не к месту, тем более что речь идет о Си.
Во что развернутся те или иные функции зависит от компилятора и его настроек.
pushkoff 30.07.2010 21:21 # 0
ilardm 30.07.2010 21:37 # 0
absolut 30.07.2010 22:05 # −1
С каким запасом? Берутся смежные элементы и накладываются друг на друга.
Косяк в явном виде.
>теоретически :)
А должно быть практически.
ilardm 30.07.2010 22:07 # 0
absolut 30.07.2010 22:10 # 0
Это что ещё за термин?
Была машинопись, а теперь человекочитаемость :)
ilardm 30.07.2010 22:13 # 0
в данном случае 5 - человекочитаемая величина, а 4 - индекс последнего элемента.
PS торфянники всё ещё действуют :)
TarasB 31.07.2010 12:40 # 0
Косяк в явном виде.
До тебя не дошло что ли, что так и задумано, а , минусатор?
TarasB 31.07.2010 13:12 # 0
TarasB 31.07.2010 13:26 # 0
absolut 31.07.2010 15:54 # 0
Ещё раз повторю, если не понял, что когда области пересекаются memcpy() не подходит.
А в данном случае они будут пересекаться когда (_count-i) > 1.
P.S. А что тебе минусы глаза режут? Так не пиши всякий бред и минусов не будет.
TarasB 31.07.2010 12:40 # 0
ilardm 31.07.2010 12:53 # 0
TarasB 31.07.2010 13:30 # 0
7я строчка не нужна, проверь
ilardm 31.07.2010 13:41 # 0
_order+i + (_count - i) -- это вообще откуда?
_count -- *количество* элементов. индекс последнего -- _count-1
7й строкой копируем iй элемент /за пределы/ массива
8й копируем элементы с i+1 в i в количестве сколько элементов от iтого до конца с учётом толькочто скопированного. -- К.О.
или я всё ещё чего-то не понял?
TarasB 31.07.2010 15:16 # 0
ilardm 31.07.2010 15:24 # 0
Мистер Хэнки 30.07.2010 21:39 # 0
ilardm 30.07.2010 21:43 # 0
чтоб различать их. можно и так this->name=name
----
К.О.
absolut 30.07.2010 22:03 # 0
ilardm 30.07.2010 22:05 # 0
и пример выдран из контекста, так что да, конкретно тут нет плюсов.
Kornew 30.07.2010 22:52 # 0
(даже имена функций говорят, об этом)
подчёркивание в начале:
- мб аффтор таким образом хотел выделить: "это параметры функции"
ilardm 30.07.2010 22:57 # 0
а функции на самом деле - методы класса. просто класс опустил за ненадобностью.
absolut 30.07.2010 22:12 # 0
Члены класса с подчеркиванием.
И как советует Саттер - лучше в конце.
ilardm 30.07.2010 22:17 # 0
А ещё они классы как CClass обзывают.
И да, я объектно-ориентированное программирование с MFC начинал.