- 1
- 2
- 3
- 4
- 5
if (t) {
;
} else {
printf("%d ", i);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+145
if (t) {
;
} else {
printf("%d ", i);
}
Ночь. Хочу спать. Выдал вот такое.
+139
FILE *ConfigFile = NULL;
char *workdir = NULL;
workdir=getenv("APP_WORKDIR");
if ((NULL!=workdir) && (NULL != (ConfigFile = fopen(strcat(workdir,"appname/config.xml"), "r"))))
{
fclose(ConfigFile);
workdir[strlen(workdir)-10] = '\0';
setenv("APP_RESOURCE_DIR", workdir , 1);
}
вот так нужно указывать крутой библиотеке, любимому и незаменимому детищу нашего R&D, читать файл из другой директории.
и вот такое было закопипащено в 4 приложений....
+132
const long long_value = PyInt_AsLong(value);
const int int_value = (int)long_value;
if (PyErr_Occurred() || long_value != int_value) { /* Overflow */
PyMongo...
+145
#define ISODD( i ) ( (((i) % 2) == 0) ? 0 : 1 )
Особо выдающимся китайцам платят не построчно, а посимвольно.
+144
#include <stdio.h>
// Говнокод здесь
#define ABS(x) ((x) ? (x) : (-(x)))
int main () {
char ch = -128;
short sm = -32768;
int i = -2147483647; i--; // здесь
long long l = -9223372036854775807LL; l--; // и здесь декременты нужны
// для подавления варнингов
printf("char:\t\tABS(%hhd) = %hhd\n", ch, ABS(ch));
printf("short:\t\tABS(%hd) = %hd\n", sh, ABS(sh));
printf("int:\t\tABS(%d) = %d\n", i, ABS(i));
printf("long long:\tABS(%lld) = %lld\n", l, ABS(l));
return 0;
}
Может быть, баян, но...
Всем знакомый макрос ABS способен сделать большую гадость.
Вот вывод программы:
char: ABS(-128) = -128
short: ABS(-32768) = -32768
int: ABS(-2147483648) = -2147483648
long long: ABS(-9223372036854775808) = -9223372036854775808
+146
logit("e", "%s No Menu! Wait 5 minutes and try again.\n", whoami);
for(j=0;j<60;j++) {
sleep_ew( 5000 ); /* wait around */
}
sgram из earthworm
+144
main() {
char * what = "\
........................................ ....________\
....................................,.-'\"...................``~.,\
.............................,.-\"................................... \"-.,\
.........................,/........................................ .......\":,\
.....................,?................. .....................................,\
.................../........................................ ...................,}\
................./........................................ ..............,:`^`..}\
.............../........................................ ...........,:\"........./\
..............?.....__.................. .......................:.........../\
............./__.(.....\"~-,_..............................,:..... ...../\
.........../(_....\"~,_........\"~,_.................. ..,:........_/\
..........{.._$;_......\"=,_.......\"-,_.......,.-~-,},.~\";/....}\
...........((.....*~_.......\"=-._......\";,,./`..../\"............../\
...,,,___.`~,......\"~.,................. ...`.....}............../\
............(....`=-,,.......`........................(..... .;_,,-\"\
............/.`~,......`-...................................../\
.............`~.*-,.....................................|, ./.....,__\
,,_..........}.>-._...................................|.. ............`=~-,\
.....`=~-,__......`,............................. ....\
...................`=~-,,.,...............................\
................................`:,,.... .......................`..............__\
.....................................`=-,...................,%`>--==``\
........................................ _..........._,-%.......`\
...................................,";
int c = 0; int i = 0;
for(; i < strlen(what); i++) {
switch(what[i]) {
case '.': c++;break;
case '_': c--;break;
case '/': c *= 2; break;
case ',': c /= 2; break;
case '?': c <<= 1; break;
case '"': c >>= 1; break;
case ':': c = ~c; break;
case '*': c = -c; break;
case '`': c += 100500; break;
case '{': c -= '{'; break;
case '}': c += '}'; break;
case '-': c /= 4; break;
case '~': c <<= 4; break;
case ';': c = c & -c; break;
case '%': c = c & 0xFF; break;
case '=': c = c; /* еба! */ break;
case '^': c = c ^ -c; break;
case '$': printf("BINGOOO!!!\n"); break;
}
}
printf("FACEPALM RESULT: %i\n", c);
BINGOOO!!!
FACEPALM RESULT: 50301
+106
// процедура ввода новой даты в RTC
long __new_date()
{
date sysdate;
unsigned long str,i;
unsigned char tmpbuf[16];
// ...
nextda: __putsV("\n\rВведите новую дату: ");
__getsV(tmpbuf,10);
if(tmpbuf[0]==0) goto daok;
//проверка строки на допустимые символы '0'-'9' и '.'
for(i=0; tmpbuf[i]!=0; i++)
{ if((tmpbuf[i]>0x39 || tmpbuf[i]<0x30) && tmpbuf[i]!=0x2e) goto baddat;
}
//проверка числа в диапазоне 01-31
if(((tmpbuf[0]==0x33)&&(tmpbuf[1]>0x31)) || (tmpbuf[0]>0x33)
|| (tmpbuf[1]==0x2e) || ((tmpbuf[0]==0x30)&&(tmpbuf[1]==0x30)) ) goto baddat;
//проверка точки после числа
if((tmpbuf[2]!=0x2e) && (tmpbuf[2]!=0x0)) goto baddat;
if((tmpbuf[2]==0x0) || (tmpbuf[3]==0x00))
{ sysdate.ti_date=(tmpbuf[1]-0x30)+((tmpbuf[0]-0x30)<<4);
goto fordok; }
//проверка месяца в диапазоне 01-12
if(((tmpbuf[3]==0x31)&&(tmpbuf[4]>0x32)) || (tmpbuf[3]>0x31)
|| (tmpbuf[4]==0x2e) || ((tmpbuf[3]==0x30)&&(tmpbuf[4]==0x30)) ) goto baddat;
//проверка точки после месяца
if((tmpbuf[5]!=0x2e) && (tmpbuf[5]!=0x0)) goto baddat;
if((tmpbuf[5]==0x0) || (tmpbuf[6]==0x00))
{ sysdate.ti_date=(tmpbuf[1]-0x30)+((tmpbuf[0]-0x30)<<4);
sysdate.ti_month=(tmpbuf[4]-0x30)+((tmpbuf[3]-0x30)<<4);
goto fordok; }
//проверка года в диапазоне 00-99
if((tmpbuf[6]==0x2e) || (tmpbuf[7]==0x2e)) goto baddat;
if(tmpbuf[7]==0x00) goto baddat;
if(tmpbuf[8]==0x0)
{ sysdate.ti_date=(tmpbuf[1]-0x30)+((tmpbuf[0]-0x30)<<4);
sysdate.ti_month=(tmpbuf[4]-0x30)+((tmpbuf[3]-0x30)<<4);
sysdate.ti_year=(tmpbuf[7]-0x30)+((tmpbuf[6]-0x30)<<4);
goto fordok; }
baddat: __putsV("\n\rДата введена неверно (дд.мм.гг)");
goto nextda;
//установка новой даты
fordok:
__set_date(&sysdate);
daok:
return 0;
}
Из ПО отечественного шифродевайса. Функция получает от "оператора" время (дд.мм.гг), проверяет его на корректность и пишет в Real Time Clock.
+109
/*
* The dump header describes the contents of a crash dump. Two headers
* are written out: one at the beginning of the dump, and the other at
* the very end of the dump device. The terminal header is at a known
* location (end of device) so we can always find it. The initial header
* is redundant, but helps savecore(1M) determine whether the dump has been
* overwritten by swap activity. See dumpadm(1M) for dump configuration.
*/
#define DUMP_MAGIC 0xdefec8edU /* dump magic number */
вот такая сигнатура у крэшдампа соляриса
−34
#define _ F-->00 || F-OO--;
long F=00,OO=00;
main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_
}
так расчитывается число пи. я не мог этого не запостить.