- 1
- 2
- 3
- 4
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−47
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
в догонку к http://govnokod.ru/19968
http://www.tutorialspoint.com/c_standard_library/c_function_qsort.htm
Переполнение знаковых целых чисел - не, не слышал
А то иш, если с колокольни поп сказал, значит надо в это верить.
http://melpon.org/wandbox/permlink/O2t478eLe4szylSV - НЕВЫРОВНЕННОСТЬ УКАЗАТЕЛЕЙ вполне возможна, если например сортируем какой-нибудь массив из структур, которые плотно упакованы. Таким образом, указатель на int может быть не кратен 4 (если у нас 4-байтный инт) и на некоторых архитектурах будет жопа. Так что эту поебень надо заменить на memcpy, вот так:
При вычитании там может переполнится в минусах, это будет во-первых UB, а во-вторых даже если бы это было не UB (т.е. если б отняв единицу от INT_MIN мы б по стандарту получили бы значение INT_MAX и чтобы стандартом было закреплено что тут точно two's complement используется) то получилась бы все равно хуита, например такое сравнение INT_MIN с единицей показало бы, что единица МЕНЬШЕ чем INT_MIN, что естественно является полнейшей хуитой. Таким образом, надо сделать:
или
Не надо так делать, пожалей читателей...
Это ж мое фирменное изобретение, придуманное в http://govnokod.ru/19968
http://dump.bitcheese.net/files/pulikej/Яша_учится_программировать1.6.jpg
http://www.programmingforkids.ru/2013/09/o-knige-dlya-detei.html
страница 173
А также учат экмаблядству вроде сложения строк с числами:
То ли дело "PHP":
вместо более явных функций floor и ceil.
- Саша, ты что делаешь?
- Дерево выкапываю, математичка домашку дала - корень найти.
- Ни фига, тебе ещё повезло: Федьке она ваще сказала член на многочлен разделить. Сидит, нож точит, плачет.
Емнип, болезнь такая есть, когда анус извлекается.
или
?
Предлагаю для s, n: typeof s === 'string', typeof n === number, n >= 0, (n | 0) === n следующее определение: div = (s, n) => s.substring(0, s.length / n);
P.S. Таблицы с равной шириной/длиной
Блин, 1024-- опередил
> s.substring(0, s.length / n);
Да, я так и считал.
>>петухов
на зоне чалился?
Кстати, как вообще работают с такими структурами на таких нехороших архитектурах? Чтобы достать поле, его (неявно) побайтово копируют куда-то?
Если же передавать адреса структур и потом из них извлекать через -> то вроде как никаких проблем быть не должно
Если из-за нехватки ОЗУ приходится ломать alignment полей в структурах... То это уже embedded какой-то.