- 1
- 2
return DSQR(a.r) + DSQR(a.i);
return fabs(a.r) + fabs(a.i);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+151.8
return DSQR(a.r) + DSQR(a.i);
return fabs(a.r) + fabs(a.i);
Пример говроретурна одной из моих функций в дипломном проекте на Си. Я собрал несколько вариантов программы, комментируя в различных местах различные return такого вида, как сейчас представлено выше.
DSQR() -- это макрос возведения в квадрат из numericalrecepies. Там вся программа на основе "рецептного" кода.
+123.5
printf(" %f %f %f %f %f %f %f %f\n",Xk[0],Xk[1],Xk[2],Xk[3],Xk[4],Xk[5],Xk[6], Xk[7]);
Рад бы был, если б это написали китайцы. К сожалению, дело рук наших соотечественников.
+132.3
char *uart_readln_timeout(UART_HANDLE h, char *buf, uint16_t len, clock_tick_t to)
{
clock_tick_t finish_time;
char *datap = buf;
char *datae = buf + len - 1;
if( len == 0 ) return buf;
if( len == 1 ) {
buf[0] = 0;
return buf;
}
finish_time = clock_get_millis() + to;
// FIXME!!!
while( datap < datae && ( to == 0 || clock_get_millis() < finish_time ) ) {
if( uart_read_char(h, datap) ) {
if( *datap++ == '\n' ) break;
}
}
*datap = 0;
return buf;
}
читает строку из UART. есть подозрение, что это говнокод.
+108.6
/**
* Копирует первое большое число во второе.
*
* @param a большое число приемник
* @param b большое число источник
* @param n длинна больших чисел в словах
*
* @return FALSE - четное, TRUE - нечетное
*/
void int_copy(uword_t *a, const uword_t *b, const int n)
{
memcpy(a, b, sizeof(a[0]) * n);
}
Вот такую милую функцию я нашел в проекте над которым работаю.
+98.4
/* ,*/
#include <time.h>
#include/* _ ,o*/ <stdlib.h>
#define c(C)/* - . */return ( C); /* 2004*/
#include <stdio.h>/*. Moekan "' `\b-' */
typedef/* */char p;p* u ,w [9
][128] ,*v;typedef int _;_ R,i,N,I,A ,m,o,e
[9], a[256],k [9], n[ 256];FILE*f ;_ x (_ K,_ r
,_ q){; for(; r< q ; K =((
0xffffff) &(K>>8))^ n[255 & ( K
^u[0 + r ++ ] )]);c (K
)} _ E (p*r, p*q ){ c( f =
fopen (r ,q))}_ B(_ q){c( fseek (f, 0
,q))}_ D(){c( fclose(f ))}_ C( p *q){c( 0- puts(q ) )}_/* /
*/main(_ t,p**z){if(t<4)c( C("<in" "file>" "\40<l" "a" "yout> "
/*b9213272*/"<outfile>" ) )u=0;i=I=(E(z[1],"rb")) ?B(2)?0 : (((o =ftell
(f))>=8)?(u =(p*)malloc(o))?B(0)?0:!fread(u,o,1,f):0:0)?0: D():0 ;if(
!u)c(C(" bad\40input "));if(E(z[2],"rb" )){for(N=-1;256> i;n[i++] =-1 )a[
i]=0; for(i=I=0; i<o&&(R =fgetc( f))>-1;i++)++a[R] ?(R==N)?( ++I>7)?(n[
N]+1 )?0:(n [N ]=i-7):0: (N=R) |(I=1):0;A =-1;N=o+1;for(i=33;i<127;i++
)( n[i ]+ 1&&N>a[i])? N= a [A=i] :0;B(i=I=0);if(A+1)for(N=n[A];
I< 8&& (R =fgetc(f ))> -1&& i <o ;i++)(i<N||i>N+7)?(R==A)?((*w[I
] =u [i])?1:(*w[I]= 46))?(a [I++]=i):0:0:0;D();}if(I<1)c(C(
" bad\40la" "yout "))for(i =0;256>(R= i);n[i++]=R)for(A=8;
A >0;A --) R = ( (R&1)==0) ?(unsigned int)R>>(01):((unsigned
/*kero Q' ,KSS */)R>> 1)^ 0xedb88320;m=a[I-1];a[I
]=(m <N)?(m= N+8): ++ m;for(i=00;i<I;e[i++]=0){
v=w [i]+1;for(R =33;127 >R;R++)if(R-47&&R-92
&& R-(_)* w[i])*( v++)= (p)R;*v=0;}for(sprintf
/*'_ G*/ (*w+1, "%0" "8x",x(R=time(i=0),m,o)^~
0) ;i< 8;++ i)u [N+ i]=*(*w+i+1);for(*k=x(~
0,i=0 ,*a);i>- 1; ){for (A=i;A<I;A++){u[+a [ A]
]=w[A ][e[A]] ; k [A+1]=x (k[A],a[A],a[A+1]
);}if (R==k[I]) c( (E(z[3 ],"wb+"))?fwrite(
/* */ u,o,1,f)?D ()|C(" \n OK."):0 :C(
" \n WriteError" )) for (i =+I-
1 ;i >-1?!w[i][++ e[+ i]]:0;
) for( A=+i--; A<I;e[A++]
=0); (i <I-4 )?putchar
((_ ) 46) | fflush
/*' ,*/ ( stdout
): 0& 0;}c(C
(" \n fail")
) /* dP' /
dP pd '
' zc
*/
}
+98
BOOL NewStartUsed()
{
if ((BOOL) -1 == bNewStartUsed) {
bNewStartUsed = FALSE;
bNewStartUsed = TRUE;
int iVal = bNewStartUsed;
if (GetConfigInt(&iVal, "NewStart", "Common", ConfigFile)) {
bNewStartUsed = (0 != iVal);
}
}
return bNewStartUsed;
}
просто но комментс...
+141.8
#define TRUE FALSE //счастливой отладки
Классика жанра.
+133
//рекурсивная процедура создающая структуру меню
byte form_hash(phasharray vrarr, WORD* ni, byte* ne)
{
byte ct=MainMenu[(*ni)].numSubMenus, ict;
phasharray vrarrcr;
if((*ni)++==0) pmain=vrarr; // если первый проход - запоминаем ссылку на главное меню
for (ict=0; ict<ct; ict++)
{
vrarr->hash[ict].pitem=(tmenuitem*)RTKGetBuffer(&menuPool);
//инициализация строки элемента
scopy0(((*((*vrarr).hash[ict].pitem)).menustr), MainMenu[*ni].nameMenu);
if (MainMenu[*ni].numSubMenus!=0)
{
(*((*vrarr).hash[ict].pitem)).pnextlev=RTKGetBuffer(&hashMenuPool);// создание хэша
vrarrcr=(phasharray)(*((*vrarr).hash[ict].pitem)).pnextlev;//вводим новую переменную для облегчения доступа к созданной структуре
(*vrarr).hash[ict].quantity=(byte)MainMenu[*ni].numSubMenus;//запоминаем количество элементов в меню уровнем выше
(*vrarrcr).pPrevLev=vrarr; // ссылка на предыдущий элемент
(*((*vrarr).hash[ict].pitem)).fpmenu=true;
if (MainMenu[*ni].numSubMenus==MENU_FUNC) // вызов процедуры динамического формирования меню
{
menupr_params.vrarr=vrarrcr;
menupr_params.phashprev=vrarr;
menupr_params.ni=ni;
menupr_params.ne=ne;
menupr_params.ict=ict;
(MainMenu[*ni].pproc)();
(*ni)++;
} else
{
if(MainMenu[*ni].pproc) // если исключение (перед входом в подменю необходимо выполнить функцию)
{
changeArr[(*ne)++]=vrarrcr;
(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
(*((*vrarr).hash[ict].pitem)).fpmenu=false;
};
// исправляем значение элементов
(*(vrarr)).hash[ict].quantity=form_hash(vrarrcr, ni, ne);
};
// проверка сформированного меню
switch ((*(vrarr)).hash[ict].quantity)
{
case MENU_NO: // нет подменю
// освободить эл-т
RTKFreeBuffer(&hashMenuPool, vrarrcr);
(*((*(vrarr)).hash[ict].pitem)).pexec=*menu_refresh;
(*((*(vrarr)).hash[ict].pitem)).fpmenu=false;
break;
case MENU_NOEL: // не формировать эл-т
// освободить эл-т
RTKFreeBuffer(&hashMenuPool, vrarrcr);
RTKFreeBuffer(&menuPool, vrarr->hash[ict].pitem);
ict--;
ct--;
break;
case MENU_FUNC: // нет подменю, нормальная функция
RTKFreeBuffer(&hashMenuPool, vrarrcr);
(*(vrarr)).hash[ict].quantity=0;
//(*((*vrarr).hash[ict].pitem)).fpmenu=false;
break;
}
} else // заполнение элемента
{
(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
(*((*vrarr).hash[ict].pitem)).fpmenu=false;
(*ni)++;
};
};
return ct;
};
Эх, бурная была молодость :-)
+141.7
HWsDigrfLvdsctrlRxEnable(HWvDigrflvdsctrlrxenableOn) ;
HWsDigrfLvdsctrlIcmEnable(HWvDigrflvdsctrlicmenableOn) ;
HWsDigrfLvdsctrlRxSpeed(HWvDigrflvdsctrlrxspeedF2) ;
HWsDigrfLvdsctrlTxEnable(HWvDigrflvdsctrltxenableOn) ;
HWsDigrfLvdsctrlTxSpeed(HWvDigrflvdsctrltxspeedF) ;
Кусок конфигурационного кода (реальный проект). Фантазия авторов на имена функций поражает...
−148.5
switch (c)
{
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '_':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case 127: case 128: case 129: case 130: case 131: case 132:
case 133: case 134: case 135: case 136: case 137: case 138:
case 139: case 140: case 141: case 142: case 143: case 144:
case 145: case 146: case 147: case 148: case 149: case 150:
case 151: case 152: case 153: case 154: case 155: case 156:
case 157: case 158: case 159: case 160: case 161: case 162:
case 163: case 164: case 165: case 166: case 167: case 168:
case 169: case 170: case 171: case 172: case 173: case 174:
case 175: case 176: case 177: case 178: case 179: case 180:
case 181: case 182: case 183: case 184: case 185: case 186:
case 187: case 188: case 189: case 190: case 191: case 192:
case 193: case 194: case 195: case 196: case 197: case 198:
case 199: case 200: case 201: case 202: case 203: case 204:
case 205: case 206: case 207: case 208: case 209: case 210:
case 211: case 212: case 213: case 214: case 215: case 216:
case 217: case 218: case 219: case 220: case 221: case 222:
case 223: case 224: case 225: case 226: case 227: case 228:
case 229: case 230: case 231: case 232: case 233: case 234:
case 235: case 236: case 237: case 238: case 239: case 240:
case 241: case 242: case 243: case 244: case 245: case 246:
case 247: case 248: case 249: case 250: case 251: case 252:
case 253: case 254: case 255:
continue;
default:
phase1_ungetc (c);
break;
}
нашел в недрах gettext