dmzlj -

топ 100 блогов dmzlj03.01.2010 по мотивам вот этого и, особенно, вот этого


VM_WORD beepvm__api_strlen(void *vm, VM_WORD *s)
{
    return *s;
}


причем, когда мне надо таскать эту строку между сишным кодом и beepvm --- я просто выделяю чуть больше, и в конец присобачиваю-таки '\x00'. Что бы избежать лишнего копирования-выделения памяти.



Давно хотел разразиться, да все не складывалось. Тот, кто изобрел nul-терминированную строку, постебался над индустрией на десятки лет. Даже круче того чувака (Хоар?) который считает, что это он один изобрел NULL.

Причем, вообще неясно, что послужило причиной такого "дизайна". Экономия чего? Памяти? Много наэкономили, особенно с учетом выравнивания? Избежали ограничения на размер строки? А что, там где экономия лишнего слова / байта на хранение размера существенна, есть столько памяти, что бы хранить строки неограниченных размеров? Да и где строки (именно строки) такого размера имели смысл и для чего? Всегда для больших массивов применялись другие структуры данных. Редко даже строка превышала 256 байт, так что вместо '\x00' можно было бы хранить тупо длину.

Следующий ненависти пост --- про архитектуры, позволяющие доступ к невыровненным данным.

Оставить комментарий

Популярные посты:
Архив записей в блогах:
Киев, Май 14 (Новый Регион, Михаил Рябов) – Боксер и политик Виталий Кличко заявил, что «глубоко уважает» ветеранов Украинской повстанческой армии, сражавшейся против советских войск. Об этом Кличко сказал в эфире телеканала ICTV. ...
Поздние сталинки на Рогожском ...
...
Помните вот этот букет в сентябре? Я здесь про него писала: "Осень у меня дома" Я всё хотела нарисовать погремушки маков, откладывала и откладывала, пока они засохли и вытянулись. Посмотрела на них: а что, тоже живописно :-) Всегда приятно ...
Как я и обещал , в воскресенье съездили на одну из точек , предложенных конкурсом «Land Rover. Время личных открытий». Организаторы любезно предоставили мне на выходные Freelander, на котором я вместе с zaxarman ом и umadif , отправился в ...