+135.2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
inline void clearbufshort (void *buff, unsigned int count, WORD clear)
{
if (!count)
return;
SWORD *b2 = (SWORD *)buff;
if ((int)b2 & 2)
{
*b2++ = clear;
if (--count == 0)
return;
}
do
{
*b2++ = clear;
} while (--count);
}
Наткнулся на такой вот шедевр в коде ZDaemon. Это аналог memset, только заполняет не байтами, а словами.
Кстати, там же рядом есть функция, запполняющая двойными словами:
inline void clearbuf (void *buff, int count, SDWORD clear)
{
SDWORD *b2 = (SDWORD *)buff;
while (count--)
*b2++ = clear;
}
Запостил: Arseniy,
13 Февраля 2010
guest 13.02.2010 18:34 # 0
1)Изобретение кривого велосипеда.
2)inline для гигантской функции.
guest 14.02.2010 16:11 # 0
а в остальном да, довольно криво
guest 14.02.2010 16:20 # 0
А может и не отвергнет. Не нужно ообобщать. Компиляторы разные бывают.
xaionaro 19.02.2010 07:07 # 0
xaionaro 19.02.2010 07:12 # 0
Хотя говнокод этот я плюсану)
guest 23.03.2010 00:19 # 0