LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

https://github.com/antirez/sds - динамические строки с проверкой границ массива. никто не мешает реализовать и свое что-нибудь эдакое. код прост как прикроватная тумбочка. чистый С

sds s = sdsnew("Hello World!");
s++;

и ты по уши в дерьме. Мне нужно объяснять что ссылка на внутренний элемент строки — это вообще весь смысл существования «char *», который «typedef char *sds»?

Так-то «никто не мешает реализовать» на ассемблере что угодно — но это не значит, что так будет быстро, удобно, и надежно. А разговор как раз был о том, что Си заставляет кодера делать ошибки, из-за чего серьезно и неоправдано увеличивает время разработки.

проблема в чем - постоянная проверка границ массивов (например) имеет свою цену.внезапно. а хочется чтобы И быстро И бесплатно И удобно. все, других проблем нет. можно запилить все что угодно

Поэтому в норм языках проверка для статических типов данных делается во время компиляции.

Исходная версия byko3y, :

https://github.com/antirez/sds - динамические строки с проверкой границ массива. никто не мешает реализовать и свое что-нибудь эдакое. код прост как прикроватная тумбочка. чистый С

sds s1 = sdsnew("Hello World!");
s++;

и ты по уши в дерьме. Мне нужно объяснять что ссылка на внутренний элемент строки — это вообще весь смысл существования «char *», который «typedef char *sds»?

Так-то «никто не мешает реализовать» на ассемблере что угодно — но это не значит, что так будет быстро, удобно, и надежно. А разговор как раз был о том, что Си заставляет кодера делать ошибки, из-за чего серьезно и неоправдано увеличивает время разработки.

проблема в чем - постоянная проверка границ массивов (например) имеет свою цену.внезапно. а хочется чтобы И быстро И бесплатно И удобно. все, других проблем нет. можно запилить все что угодно

Поэтому в норм языках проверка для статических типов данных делается во время компиляции.