2013-01-28

"Откопали стюардессу"

Конь-ди-дат на падавана С++ прислал выполенное тестовое.
На Borland C++ for DOS. conio.h, clrscr, window, рамочки ascii-графикой...
Парню 26 лет.  

2013-01-24

сишники узнали о for_each

Из одной библиотеки (на которую я уже жаловался)

typedef void (* clist_func)(void *, void *);
void clist_foreach(clist * lst, clist_func func, void * data) {
  clistiter * cur;
  for(cur = clist_begin(lst) ; cur != NULL ; cur = cur->next)
    func(cur->data, data);
}

//....

clist_foreach(list, (clist_func)free, NULL);

Если кто забыл -- void free(void*). То есть, имеем UB по стандарту С. Да, оно работает, пока cdecl и компилятор не намудрит с оптимизацией.

Интересный факт: так как это UB, компилятор имеет право делать все, что угодно. Prerelease GCC 4.3, если типы функций были несовместимы, возвращал NULL. К релизу пришлось поменять назад, ибо дофига софта "поломалось".

2013-01-21

PHP-шники такие PHP-шники.


Используют $_b и $_e вместо $_behaviors и $_events в качестве имен переменных класса, потому что ... так на объект класса выделяется на пару байт меньше. Экономия памяти -- целых 8 кб на 1000 объектов.
Ну че, и скрипт должен быстрее выполняться, ибо исходник получается банально меньше по размеру. Надо им еще посоветовать оптимизации ради для отступов использовать 1 пробел или таб.