- 1
- 2
- 3
- 4
- 5
switch( 1 )
{
default :
TO_STR( 2, "10" );
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+136.2
switch( 1 )
{
default :
TO_STR( 2, "10" );
}
Интересно, откуда и зачем такая конструкция. Может, кто-то что-то подобное встречал?
+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) ;
Кусок конфигурационного кода (реальный проект). Фантазия авторов на имена функций поражает...