ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
53261 Топик полностью
ReAl (08.03.2006 21:07, просмотров: 1) ответил bialix на мда. не знал, что такое в си можно делать. постараюсь забыть этот трюк и никогда не использовать
Это не совсем мой код. Чья идея - не помню, но в книжке было указано - чьё изобретение. Я не 15 минут смотрел, а секунд 30, и 15 минут потом ржал. Но это было лет 20 назад. Авторское применение - что-то в духе
void cpy(int *dst, int *src, int len)
{
	int cycles = (len+7) / 8; // ceil(len/8)
	switch( len % 8) {
		do {
	case 0: 	*dst++ = *src++;
	case 7: 	*dst++ = *src++;
	case 6:		*dst++ = *src++;
	case 5: 	*dst++ = *src++;
	case 4: 	*dst++ = *src++;
	case 3: 	*dst++ = *src++;
	case 2: 	*dst++ = *src++;
	case 1: 	*dst++ = *src++;
		} while(--cycles);
	}
}
Да, идиома. Приблизительно как и
        while( *dst++ = *src++);