- 1
echo 'some string'."\n";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+160
echo 'some string'."\n";
)))
+53
template <typename T, typename Mid, int N>
struct UselessWrapperFillMid
{
inline static void FillMid (T* t, Mid mid)
{
mid(t[0], t[N], t[N/2]);
UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[0] , mid);
UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[N/2], mid);
}
};
template <typename T, typename Mid>
struct UselessWrapperFillMid <T, Mid, 1>
{
inline static void FillMid (T* t, Mid mid)
{
(void)t;
(void)mid;
}
};
Бесит такой понос вместо нормальной рекурсии.
Но иначе оно не развернётся в последовательность инструкций без ветвлений и вызовов.
+136
DIR_STRUCT * fill_dir_struct(DIR_STRUCT * dir_stc, _ptr_by_val_(char *) base_dir_path, _ptr_by_val_(char *) offset_dir)
{
DIR_STRUCT * sub_dir;
DIR * srcdir;
struct stat st;
char full_sub_dir_path[MAX_PATH_SIZE];
struct dirent * dent;
sprintf(full_sub_dir_path, "%s/%s", base_dir_path, offset_dir);
dbgprintln("Directory %s", full_sub_dir_path);
if(NULL != (dir_stc = malloc(sizeof(DIR_STRUCT))))
{
memset(dir_stc, 0x00, sizeof(DIR_STRUCT));
if (NULL != (srcdir = opendir(full_sub_dir_path)))
{
if(NULL != (dir_stc->dir_path = malloc(strlen(offset_dir) + 1)))
{
strcpy(dir_stc->dir_path, offset_dir);
for( ;(NULL != (dent = readdir(srcdir))); )
{
if((0 != strcmp(dent->d_name, ".")) &&
(0 != strcmp(dent->d_name, "..")) &&
(0 <= fstatat(dirfd(srcdir), dent->d_name, &st, 0)))
{
if (S_ISDIR(st.st_mode)) //Directory
{
if(NULL != (sub_dir = fill_dir_struct(sub_dir, full_sub_dir_path, dent->d_name)))
{
dir_stc->sub_dirs = list_append_node(dir_stc->sub_dirs, sub_dir);
dir_stc->dir_files_size += sub_dir->dir_files_size;
dir_stc->sub_dir_files_count += sub_dir->sub_dir_files_count;
}
else
{
dir_stc = destroy_dir_struct(dir_stc);
break;
}
}
else //File
{
dbgprintln("File %s, size %lu bytes", dent->d_name, st.st_size);
dir_stc->dir_files = list_append_node(dir_stc->dir_files, allocate_and_copy_char_buffer(dent->d_name, strlen(dent->d_name) + 1));
dir_stc->dir_files_size += st.st_size;
dir_stc->sub_dir_files_count++;
}
}
}//End of for(;NULL != (dent = readdir(srcdir)); )
closedir(srcdir);
}
else//End of if(NULL != (dir_stc->dir_path = malloc(strlen(offset_dir) + 1)))
{
dir_stc = destroy_dir_struct(dir_stc);
}
}//End of if (NULL != (srcdir = opendir(full_sub_dir_path)))
else
{
dir_stc = destroy_dir_struct(dir_stc);
}
}//End of if(NULL != (dir_stc = malloc(sizeof(DIR_STRUCT))))
return dir_stc;
}
Восьмикратный индент, Йода нотейшн, const *(x) const в аргументах. Есть подозрение, что велосипедисты не знали о scandir.
Это кладезь говна.
+58
#include "internationalization.h"
namespace internationalization
{
QString numToString(int num, CASE padezh)
{
switch ( padezh )
{
case NOMINATIVE:
switch ( num )
{
case 0: return "ноль";
case 1: return "один";
case 2: return "два";
case 3: return "три";
case 4: return "четыре";
case 5: return "пять";
case 6: return "шесть";
case 7: return "семь";
case 8: return "восемь";
case 9: return "девять";
case 10: return "десять";
case 11: return "одиннадцать";
case 12: return "двенадцать";
case 13: return "тринадцать";
case 14: return "четырнадцать";
case 15: return "пятнадцать";
case 16: return "шестнадцать";
case 17: return "семьнадцать";
case 18: return "восемьнадцать";
case 19: return "девятнадцать";
case 20: return "двадцать";
case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 30: return "традцать";
case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 40: return "сорок";
case 41: case 42: case 43: case 44: case 45: case 46: case 47: case 48: case 49: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 50: return "пятьдесят";
case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 58: case 59: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 60: return "шестьдесят";
case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 70: return "семьдесят";
case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 80: return "восемьдесят";
case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 90: return "девяносто";
case 91: case 92: case 93: case 94: case 95: case 96: case 97: case 98: case 99: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 100: return "сто";
case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: return numToString( (num / 100 % 10 ) * 100 ) + " " + numToString( num % 10 );
case 110: case 111: case 112: case 113: case 114: case 115: case 116: case 117: case 118: case 119: case 120: case 121: case 122: case 123: case 124: case 125: case 126: 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: return numToString( (num / 100 % 10 ) * 100 ) + " " + numToString( (num / 10 % 10 ) * 10 ) + " " + numToString( num % 10 );
Такой код мне встретился в моем старом проекте... Мне кажется, или из меня вышел бы неплохой программист в Китае или Индии?
И там не конец, весь файл сего перла здесь: http://pastebin.com/tpAd95fd
+136
class Program
{
class A
{
//-----------------------------------------------------------------------
public static A CurrentRoot;
public static Dictionary<object, A> RootMap = new Dictionary<object, A>();
public static object Lock = new object();
//-----------------------------------------------------------------------
public int Test;
public A()
{
lock (Lock)
{
CurrentRoot = this;
b = new B();
}
}
internal class B
{
public B() { RootMap.Add(this, CurrentRoot); }
public A root { get { return RootMap[this]; } }
~B() { RootMap.Remove(this); }
}
public B b;
}
static void Main(string[] args)
{
A a1 = new A(); a1.Test = 555;
A a2 = new A(); a2.Test = 888;
Console.WriteLine(a1.b.root.Test); Console.WriteLine(a1.Test);
Console.WriteLine(a2.b.root.Test); Console.WriteLine(a2.Test);
Console.WriteLine(a1.b.root.b.root.b.root.b.root.b.root.Test);
}
Класс создан для того чтобы вложенные структуры имели доступ к структуре родителя. Safe thread support.
+129
#include <stdio.h>
#define квот [
#define квзак ]
#define фигот {
#define фигзак }
#define главный main
#define напечатать(x) printf("%s", x)
#define псевдоним typedef
#define конст const
псевдоним int цел;
псевдоним char символ;
цел главный()
фигот
конст символ* строки квот квзак = фигот "Привет, ", "мир!" фигзак;
напечатать(строки квот 0 квзак);
напечатать(строки квот 1 квзак);
фигзак
http://www.gamedev.ru/code/forum/?id=192614
У человека проблема - его напрягает переключение раскладок при написании кода.
Я в шутку предложил такое решение проблемы. Для написания кода главной функции теперь не нужно переключения раскладок!
+53
void _debugPrintWaveHeader(const char *path, const WAVHEADER &source_header)
{
FILE *debug = fopen("path", "wt");
fprintf(debug, "chunkId = %s\n", source_header.chunkId);
fprintf(debug, "chunkSize = %u\n", source_header.chunkSize);
fprintf(debug, "format = %s\n", source_header.format);
fprintf(debug, "subCh1Id = %s\n", source_header.subchunk1Id);
fprintf(debug, "subCh1Size = %u\n", source_header.subchunk1Size);
fprintf(debug, "audioform = %u\n", source_header.audioFormat);
fprintf(debug, "numChanels = %u\n", source_header.numChannels);
fprintf(debug, "sampleRate = %u\n", source_header.sampleRate);
fprintf(debug, "byteRate = %u\n", source_header.byteRate);
fprintf(debug, "blockAlign = %u\n", source_header.blockAlign);
fprintf(debug, "bitsPerSam = %u\n", source_header.bitsPerSample);
fprintf(debug, "subCh2Id = %s\n", source_header.subchunk2Id);
fprintf(debug, "subCh2Size = %u\n", source_header.subchunk2Size);
fclose(debug);
}
Начал разгребать один говнопроект... При отладке программа всё падает и падает, падает и не может остановится. Смотрю на код - все в норме, а потом, по прошествии нескольких часов...
+158
for($month = 1 ; $month <= intval(12); $month ++)
+65
grade : 100 >= "A" >= 90 > "B" >= 80 > "C" >= 70 > "D" >= 60 > "E" >= 0;
Кто-нибудь догадается, что сие может значить? :)
+105
//Невероятные приключения Microsoft'а в Индии:
private string ExtractHttpVerb(XmlDocument configDOM)
{
string httpVerb;
string hv = IfExistsExtract(configDOM, "/Config/method", "2");
switch (hv)
{
case "0":
httpVerb = HttpVerbs[0];
break;
case "1":
httpVerb = HttpVerbs[1];
break;
case "2":
httpVerb = HttpVerbs[2];
break;
default:
httpVerb = HttpVerbs[2];
break;
}
return httpVerb;
}