- 1
- 2
- 3
while([item retainCount] > 1) {
[item release];
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−108
while([item retainCount] > 1) {
[item release];
}
тут правда objective-c, а не c, но смысл в том, что человек поборол утечки памяти
+72
public static String getClassName(final HWND hWnd) {
final char[] cname_b = new char[1024];
User32.INSTANCE.GetClassName(hWnd, cname_b, 1000);
final char[] cname_b_truncated = ArrayUtils.toPrimitive(Iterables
.toArray(Functional.takeWhile(Arrays.asList(ArrayUtils
.toObject(cname_b)), Predicates.not(Predicates
.equalTo(Character.valueOf((char) 0)))),
Character.class));
return String.valueOf(cname_b_truncated);
}
Только что выдавил)
Интерес представляют строки с 5 по 9. Тут должно было быть всего-лишь
takeWhile (/= '\0') cname_b
но из-за боксинга/анбоксинга (примитивные типы в Java не могут быть параметрами Generic), и из-за того, что массивы в Java не Iterable - получилось ЭТО.
+131
#include <stdio.h>
void factorization(int num, int show) {
int num1 = num;
int n = 2;
while ( n*n <= num1 ) {
if ( num%n == 0 ) {
num = num / n;
if ( show )
printf( "%d\n", n );
} else {
n ++;
}
}
}
int main() {
int i = 0;
while ( i < 1000 ) {
factorization(999999, 0);
i ++;
}
return 0;
}
Опубликовано в одной из ссылок с http://habrahabr.ru/blogs/ruby/48952/ (если надо, точную ссылку найду позже).
Код раскладывает число на простые множители тупым перебором делителей. Мало того, что этот код медленный, так он иногда последний множитель пропускает. Одновременно и ошибка, и скорость исправляются так:
- while ( n*n <= num1 ) {
+ while ( n <= num ) {
Неожиданно, правда?
+89
## dup_hq - merge ##
dup = opos!=pos || abs(dm)<2 || abs(dm)==3 ? 0 : dcn*5<dbc && dnn*5<dbc &&
(dcn<1.25*thr || bn<bc && pos==lpos) || (dcn*dcn<dbc || dcn*5<dbc) && bn<bc && pos==lpos
&& dnn<.9*dbc || dnn*9<dbc && dcn*3<dbc ? 1 : (dbc*dbc<dcn || dbc*5<dcn) &&
bb<bc && pos==lpos && dbb<.9*dcn || dbb*9<dcn && dbc*3<dcn || dbb*5<dcn &&
dbc*5<dcn && (dbc<1.25*thr || bb<bc && pos==lpos) ? -1 : 0
mer = bom==false && opos==pos && dup==0 && abs(dm)>2 &&
(dbc*8<dcn || dbc*8<dbb || dcn*8<dbc || dcn*8<dnn || dbc*2<thr ||
dcn*2<thr || dnn*9<dbc && dcn*3<dbc || dbb*9<dcn && dbc*3<dcn)
add = bp1*cn2>bn2*cp1*(1+thr*.01) && bn0*cn2>bn2*cn0*(1+thr*.01) &&
cn2*bn1>cn1*n2*(1+thr*.01)
dup = bom ? (bn0>bp2 && bn0>=bp1 && bn0>bn1 && bn0>bn2 && cn0<125 ?
(d12*d12<d10 || d12*9<d10) ? 1 : (d10*d10<d12 || d10*9<d12) ?
0 : 4 : bp1>bp3 && bp1>=bp2 && bp1>bn0 && bp1>bn1 ? 1 : 0) : dup!=0 ?
dup : om>0 && om<5 ? (bbool==false ? 0 : om==4 && bp1*cn1<bn1*cp1 ||
om==3 && d10<d01 || om==1 ? -1 : 1) : om==5 ? (bp1*cp2>bp2*cp1*(1+thr*.01) &&
bn0*cp2>bp2*cn0*(1+thr*.01) && cp2*bn1>cn1*bp2*(1+thr*.01) &&
(add==false || cp2*bn2>cn2*bp2) ? -2 : add ? 2 : bn0*cp1>bp1*cn0 &&
(bn0*cn1<bn1*cn0 || cp1*bn1>cn1*bp1) ? -1 : bn0*cn1>bn1*cn0 ? 1 : 0) : 0
это называется AviSynth - и это вполне нормальный скрипт, ибо другого пути там просто нет, да и альтернатив AviSynthy пока нет
+173
$darr = array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
Похапе. Нафик нужны встроенные функции даты / времени? В феврале 28 дней, и баста.
Фрагмент из давно работающего проекта.
+157
TForm1 *Form1;
//----------------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//- Буква А ---------------------------------------------------------------------
void __fastcall TForm1::Label1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/1.bmp");
PlaySound("SOUND/1.wav",0,SND_ASYNC);
}
//--Буква Б-----------------------------------------------------------------------
void __fastcall TForm1::Label2Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/2.bmp");
PlaySound("SOUND/2.wav",0,SND_ASYNC);
}
//--Буква В-------------------------------------------------------------------------
void __fastcall TForm1::Label3Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/3.bmp");
PlaySound("SOUND/3.wav",0,SND_ASYNC);
}
....
и т.д.
//--Буква Я-------------------------------------------------------------------------
void __fastcall TForm1::Label33Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/33.bmp");
PlaySound("SOUND/33.wav",0,SND_ASYNC);
}
//---------------------------------------------------------------------------
Пример из обучающей статьи по с++, где от а до я выресовываются буквы.
+117
void makeGetSet(ref int delegate() get, ref void delegate(int) set)
{
int _data = 0;
get = {return _data;};
set = (int Data){_data = Data;};
}
+165
function nl() {return "\n";}
function sp() {return chr(0);}
function space() {return chr(32);}
function byte($n) {return chr($n);}
+101
function IPtoDWORD(const s: string):DWORD;
var
L: TStringList;
b: packed array [0..3] of byte;
i: Integer;
begin
Result := 0;
L := TStringList.Create;
try
L.Delimiter := '.';
L.DelimitedText := s;
for i := 0 to 3 do
b[3 - i] := StrToInt(L[i]);
Result := pdword(@b[0])^;
finally
L.Free
end;
end;
...
if (NewIP >= IPtoDWORD('192.168.0.0')) and (NewIP <= IPtoDWORD('192.168.0.255')) then
//Пускаем
else
ServerSocket.Socket.Connections[i - 1].SendText('запрет'); //Запрет
ServerSocket.Socket.Connections[i - 1].Close; //Закрываем канал
if (NewIP >= IPtoDWORD('193.168.0.0')) and (NewIP <= IPtoDWORD('193.168.0.255')) then
//Пускаем
if (NewIP >= IPtoDWORD('194.168.0.0')) and (NewIP <= IPtoDWORD('194.168.0.255')) then
//Пускаем
if (NewIP >= IPtoDWORD('195.168.0.0')) and (NewIP <= IPtoDWORD('195.168.0.255')) then
//Пускаем
личинка быдлокодера в схватке с IPv4
примечательно искрометное форматирование кода
+143
switch(pin){
case 0:
break;
case 1:
ADMUX = 1;
case 2:
ADMUX = 1 << 1;
case 3:
ADMUX = 1 | 1 << 1;
case 4:
ADMUX = 1 << 2;
case 5:
ADMUX = 1 | 1 << 2;
case 6:
ADMUX = 1 << 1 | 1 << 2;
}
Микроконтроллерный говнокод. Этот кусочек указывает, с какого вывода считывать показания АЦП. Эквивалент:
ADMUX |= pin;