И в чём профит (кроме мазохизма с массивом из 1 элемента)?
Вид для печати
Микрооптимизации вообще невыгодны по своей сути.
Дело даже не в этом.
Если честно, я надеялся получить ответ от Geebrox, но раз он решил покинуть сию тему, мне придётся самому расставить точки над "ё".
Никто не заметил самого главного: никакой "экономии памяти" в том подходе с "1 char" нет. Нельзя сделать массив размером в четверть ячейки, полторы ячейки, etc. - в любом случае размер будет округлён до целой ячейки, так работает оператор char.
Разве я писал что так будет быстрее или памяти меньше уйдет?
Я не просто так поставил этот смайл: :crazy:
Мда, критики уровень "Бог"
Если я хотел бы что то доказать, я обязательно об этом написал бы...
Всегда удивлялся таким людям: сначала напакостят в теме, а потом пытаются в чём-то обвинить других.
Я не знаю, пытались ли вы намеренно ввести других пользователей в заблуждение, что-то предложить, не зная теории, или это был просто троллинг - в любом случае начали это вы, и теперь ваша попытка выставить себя белым и пушистым выглядит цинично.
Исправлен краш, возникавший при использовании стандартного компилятора Pawn (до этого я использовал при тестировании только модифицированный компилятор от Zeex). Суть в том, что если использовать #emit сразу же после блока if, то созданные с помощью #emit инструкции почему-то попадают в тот блок.
Иными словами, код
превращается компилятором вPHP код:
if(i==0)
SendClientMessageToAll(0, str);
#emit push.c str
#emit push.c 0xFFFFFFFF
#emit push.c 8
Zeex уже знает об этом баге, но ещё не исправил его в своей версии компилятора.PHP код:
if(i==0)
{
SendClientMessageToAll(0, str);
#emit push.c str
#emit push.c 0xFFFFFFFF
#emit push.c 8
}
Проблема проявлялась только при использовании стандартного компилятора, т.к. только при его использовании компилировался блок if. Решена она была следующим образом: после блока if я добавил "i = 100;" - это действие не имеет никакого смысла (т.к. переменная i уже создаётся с изначальным значением 100), но позволяет отделить #emit от if.
PHP код:
if(i==0)
SendClientMessageToAll(0, str);
i = 100;
#emit push.c str
#emit push.c 0xFFFFFFFF
#emit push.c 8