- 1
- 2
- 3
- 4
- 5
- 6
- 7
function getCurrentYear() {
if (lastFrom.getYear() == lastTo.getYear()) {
return (lastFrom.getYear() + 1900).toString();
} else {
return (new Date().getYear() + 1900).toString();
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1005
function getCurrentYear() {
if (lastFrom.getYear() == lastTo.getYear()) {
return (lastFrom.getYear() + 1900).toString();
} else {
return (new Date().getYear() + 1900).toString();
}
}
*развожу руками*
+1005
unsigned
int
length () {
unsigned
int
number = (this -> number + 1) % 16;
int
second = size - number;
return (second / 16) + (1 % ((second % 16) + 1)) + (1 % (number + 1));
}
Вот такая фигня у нас в коде, работающем в аппаратуре отображения и протоколирования данных на АЭС.
Авторское форматирование сохранено.
Нашли когда оно с новыми конфигами стало падать от деления на ноль при запуске.
+1005
#define STL_NO_INLINE __forceinline
А я думаю, почему в проекте, доставшемуся мне по наследству, exe'шник большой...
+1005
memsize =
strlen("cpy_dta.sh ");
if ( memsize >= 4096 ) {
sprintf( errMsg, "[%s] - ExecScript string too long", func);
return -7;
}
sprintf( args, "cpy_dta.sh " );
if ( 0 != ( rc = ::system ( args ) ) )
{
// ...
}
просто фейспалм.
+1005
void bvnr(char *text)
{
for(int f=0; f<=strlen(text); f++)
{
switch(text[f])
{
case 'Q' : text[f] = 'q' ; break;
case 'W' : text[f] = 'w' ; break;
case 'E' : text[f] = 'e' ; break;
case 'R' : text[f] = 'r' ; break;
case 'T' : text[f] = 't' ; break;
case 'Y' : text[f] = 'y' ; break;
case 'U' : text[f] = 'u' ; break;
case 'I' : text[f] = 'i' ; break;
case 'O' : text[f] = 'o' ; break;
case 'P' : text[f] = 'p' ; break;
case 'A' : text[f] = 'a' ; break;
case 'S' : text[f] = 's' ; break;
case 'D' : text[f] = 'd' ; break;
case 'F' : text[f] = 'f' ; break;
case 'G' : text[f] = 'g' ; break;
case 'H' : text[f] = 'h' ; break;
case 'J' : text[f] = 'j' ; break;
case 'K' : text[f] = 'k' ; break;
case 'L' : text[f] = 'l' ; break;
case 'Z' : text[f] = 'z' ; break;
case 'X' : text[f] = 'x' ; break;
case 'C' : text[f] = 'c' ; break;
case 'V' : text[f] = 'v' ; break;
case 'B' : text[f] = 'b' ; break;
case 'N' : text[f] = 'n' ; break;
case 'M' : text[f] = 'm' ; break;
)
}
}
Перевод текста в нижний регистр. Можно пугать детей на ночь))
+1005
#define KB * 1024
#define MB KB KB
#define GB MB KB
#define TB GB KB
int main( ... )
{
char * arr = new char [16 MB];
...
}
+1004
// shit.h :
#if END_SHIT == 0
bagor++;
#if BIT0 == 0
#undef BIT0
#define BIT0 1
#else
#undef BIT0
#define BIT0 0
#if BIT1 == 0
#undef BIT1
#define BIT1 1
#else
#undef BIT1
#define BIT1 0
#if BIT2 == 0
#undef BIT2
#define BIT2 1
#else
#undef BIT0
#undef BIT1
#undef BIT2
#define END_SHIT 1
#endif
#endif
#endif
#include "shit.h"
#endif
//shit.c
#include <stdio.h>
int main(void) {
int bagor = 0;
#define BIT0 0
#define BIT1 0
#define BIT2 0
#include "shit.h"
printf("bagor = %i\n", bagor);
return 0;
}
http://govnokod.ru/20947#comment348047
CHayT 3 часа назад # 0
> нет ни циклов, ни рекурсий
Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.
-----
Но ведь совершенно очевидно, что с этим можно делать. Очередной шедевр макроговна
+1004
long base64::rlong (char * source)
{
long res = 0;
for (int i = 0; i < 4; i++) ((char *) &res)[3 - i] = source[i];
return res;
}
void base64::encode (char * source, char * dest)
{
char base[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
int n = 0;
for (int nd = 0; nd < ceil(4*((double)strlen(source))/3); nd++)
dest[n++] = base[rlong(&source[((nd >> 2) << 2)*3 >> 2]) >> (26 - 6*(nd - ((nd >> 2) << 2))) & 0x3F];
for (int i = 0; i < ((int) ceil(((double)n)/4) << 2) - n; i++) dest[n++] = '=';
dest[n] = 0;
}
Ответ преподу по c++. Переводстроки в base64.
+1004
class FuncFileOutStream: public fileOutStream
{
public:
/* ... */
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, bool b);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, char c);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, long l);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, int i);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, short s);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, const char* pc);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, float f);
friend FuncFileOutStream& operator<<(FuncFileOutStream& out, double d);
/* ... */
};
попытка перенаправления данных проходящих через ostream.
только маленькая тонкость. fileOutStream уже перенакрывает ostream специально для этой цели - что бы собственный streambuf подставить, который данными проходящими через ostream и манипулирует используя два официальных виртуальных метода - вместо дюжины корявых операторов которые наверное и половины того что проект испульзует не покрывают. ну бляха муха поэтому же и сделали streambuf в стандарте, что бы вот таким маразмом не страдали...
+1004
if (param["LOG"] != NULL) // пришли логи от плагина.
{
this->logs = new loger();
this->logs->write(param["LOG"], param["TYPE"], this->Name, name);
delete this->logs;
return;
}
Так мы пишем логи