- 1
- 2
- 3
- 4
/*
* To the unenlightened: This sets the X (where X is variable between calls) LSB's of mask to 1.
*/
mask = ~(~0 << X);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+140
/*
* To the unenlightened: This sets the X (where X is variable between calls) LSB's of mask to 1.
*/
mask = ~(~0 << X);
Байтопроблемушки. Me gusta.
+143
/* Example libCello Program */
#include "Cello.h"
int main(int argc, char** argv) {
/* Stack objects are created using "$" */
var int_item = $(Int, 5);
var float_item = $(Real, 2.4);
var string_item = $(String, "Hello");
/* Heap objects are created using "new" */
var items = new(List, int_item, float_item, string_item);
/* Collections can be looped over */
foreach (item in items) {
/* Types are also objects */
var type = type_of(item);
print("Object %$ has type %$\n", item, type);
}
/* Heap objects destroyed with "delete" */
delete(items);
}
http://libcello.org/
+146
if((pDir = opendir(pchPath)) != NULL)
{
strcpy(chBuffer, pchPath);
strcat(chBuffer, "/");
while((pTemp == NULL) && ((pDirent = readdir(pDir)) != NULL))
{
if(((pChar = strstr(pDirent->d_name, Info.pchFilePrefix)) == pDirent->d_name) &&
((pChar = strstr(pDirent->d_name, Info.pchFileExtension)) != NULL) &&
(pChar[strlen(Info.pchFileExtension)] == '\0'))
{
sprintf(strrchr(chBuffer, '/') + 1, "%s", pDirent->d_name);
лаконичные программисты лаконично ходят по каталогам.
+142
do
{
...
} while ((strcmp(input,"") != 0)); /* till end of string */
нашел в прошивке одного очень известного производителя сетевого оборудования, они так парсят команды, введенные пользователем
+142
p_bmp280->calib_param.dig_P2 = (s16)(((
(s16)((s8)a_data_u8[BMP280_PRESSURE_CALIB_DIG_P2_MSB]))
<< BMP280_SHIFT_BIT_POSITION_BY_08_BITS)
| a_data_u8[BMP280_PRESSURE_CALIB_DIG_P2_LSB]);
Требуется больше приведений
из библиотеки для датчика давления BOSH280.
PS s16 dig_P2;
+137
printk(KERN_CRIT "AAA\n");
Ебу и патчу.
+130
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stat.h>
#include <conio.h>
#include <io.h>
#include <dos.h>
#include <time.h>
unsigned char kod_key;
int DIAG_F,P,R,o,u,i,i2,i3,j=0,j1,j2,i1,KPR,PNSKV,KOLS,KOLS_S,KOLS_P,KS=0,KOLT,KOLT_S,KOLT_P,MAXTM,MAXTM_S,MAXTM_P;
int F_k=0,F_PrR=0,F_N_Sv=0,K_dov,K_raz,PROZ,PROZ1,NS,NS_S,NS_P,NT_S,NT_P,NT;
long POZ,POZ1,KOLM;
float SDAT,x=0.0,v,v1,v2,DP=1.0,KK,KDAT=1.0,MS_P,MSO,MSO_P,MSO_S,MS, DS,DS_S,DS_P,MINMS,MINMS_S,MINMS_P,MAXMS,MAXMS_S,MAXMS_P,PM,PM_S,PM_P,MS_TEK;
unsigned int k=0,k1=0,k2=0;
float min,max,m[10],w2, w,w1;
clock_t t1,t2,t3,t4,t5,tc_MIN,tc_MSO;
time_t l1,l2;
struct date d;
struct time t,t_MIN,t_MSO;
int F1,F2;
union REGS rg;
//...........................
void sign()
{
i3++;
x=x+(0.00001*i3);
/*x=x+0.00244;*/
v=x;
v=(v+5)/0.00244;
v1=v/256;
v2=(int)v%256;
outportb(BASE_5710+12,v2);
outportb(BASE_5710+13,v1);
}
//...........................
K_dov=0;
kod_key=0;
d1:
while(!kod_key)
{
_AH=3;
_AL=1;
_DX=1;
geninterrupt(0x17);
kod_key=_AH;
opros();
if(MS_TEK>=2*PM)
break;
}
if(kod_key)
{
switch(kod_key)
{
case 5:
K_dov=1;
goto kon_d;
break;
default:
kod_key=0;
goto d1;
break;
}
}
if(R==1)
{
R=0;
NT++;
}
//...........................
if(kod_key)
{
switch(kod_key)
{
case 5:
K_dov=1;
goto kon_d;
break;
default:
kod_key=0;
break;
}
}
Код из реального коммерческого проекта. Все переменные объявлены глобально. Весь код в 2100 строк находится в одном файле. Комментариев нет. Внятных имён нет. Форматирования нет. Магические коэффициенты и флаги непонятных состояний повсюду. Бесконечное самоповторение. В наличии 7 функций, 2 из которых - это 85% всего кода проекта. Переходы по goto на 500 строчек в любом направлении.
+124
void UPStr(char *str)
{
while (*str)
{
switch (*str)
{
case 'а': *str = 'А'; break;
case 'б': *str = 'Б'; break;
case 'в': *str = 'В'; break;
case 'г': *str = 'Г'; break;
case 'д': *str = 'Д'; break;
case 'е': *str = 'Е'; break;
case 'ё': *str = 'Ё'; break;
case 'ж': *str = 'Ж'; break;
case 'з': *str = 'З'; break;
case 'и': *str = 'И'; break;
case 'й': *str = 'Й'; break;
case 'к': *str = 'К'; break;
case 'л': *str = 'Л'; break;
case 'м': *str = 'М'; break;
case 'н': *str = 'Н'; break;
case 'о': *str = 'О'; break;
case 'п': *str = 'П'; break;
case 'р': *str = 'Р'; break;
case 'с': *str = 'С'; break;
case 'т': *str = 'Т'; break;
case 'у': *str = 'У'; break;
case 'ф': *str = 'Ф'; break;
case 'х': *str = 'Х'; break;
case 'ц': *str = 'Ц'; break;
case 'ч': *str = 'Ч'; break;
case 'ш': *str = 'Ш'; break;
case 'щ': *str = 'Щ'; break;
case 'ъ': *str = 'Ъ'; break;
case 'ы': *str = 'Ы'; break;
case 'ь': *str = 'Ь'; break;
case 'э': *str = 'Э'; break;
case 'ю': *str = 'Ю'; break;
case 'я': *str = 'Я'; break;
case 'a': *str = 'A'; break;
case 'b': *str = 'B'; break;
case 'c': *str = 'C'; break;
case 'd': *str = 'D'; break;
case 'e': *str = 'E'; break;
case 'f': *str = 'F'; break;
case 'g': *str = 'G'; break;
case 'h': *str = 'H'; break;
case 'i': *str = 'I'; break;
case 'j': *str = 'J'; break;
case 'k': *str = 'K'; break;
case 'l': *str = 'L'; break;
case 'm': *str = 'M'; break;
case 'n': *str = 'N'; break;
case 'o': *str = 'O'; break;
case 'p': *str = 'P'; break;
case 'q': *str = 'Q'; break;
case 'r': *str = 'R'; break;
case 's': *str = 'S'; break;
case 't': *str = 'T'; break;
case 'u': *str = 'U'; break;
case 'v': *str = 'V'; break;
case 'w': *str = 'W'; break;
case 'x': *str = 'X'; break;
case 'y': *str = 'Y'; break;
case 'z': *str = 'Z'; break;
}
++str;
}
}
+141
char chByte15[3] = { pchCodeKey[0x15 * 2], pchCodeKey[0x15 * 2 + 1], 0 };
char chByte16[3] = { pchCodeKey[0x16 * 2], pchCodeKey[0x16 * 2 + 1], 0 };
char chByte18[3] = { pchCodeKey[0x18 * 2], pchCodeKey[0x18 * 2 + 1], 0 };
unsigned char uchByte15h;
unsigned char uchByte16h;
unsigned char uchByte18h;
uchByte15h = strtoul(chByte15, NULL, 16);
uchByte16h = strtoul(chByte16, NULL, 16);
uchByte18h = strtoul(chByte18, NULL, 16);
все забыли про scanf()...
+141
const char *pS;
char *pD;
// clear out new string
szNew[0] = '\0';
pS = pszValue;
pD = szNew;
// step through the string, only copying back in characters that are printable
while( *pS )
{
if( ((byte)*pS) < 32 || ((byte)*pS) > 255 )
{
pS++;
continue;
}
*pD++ = *pS++;
}
// terminate the new string
*pD = '\0';
Мало того, char в проекте подразумевается signed