История изменений
Исправление 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»?
Так-то «никто не мешает реализовать» на ассемблере что угодно — но это не значит, что так будет быстро, удобно, и надежно. А разговор как раз был о том, что Си заставляет кодера делать ошибки, из-за чего серьезно и неоправдано увеличивает время разработки.
проблема в чем - постоянная проверка границ массивов (например) имеет свою цену.внезапно. а хочется чтобы И быстро И бесплатно И удобно. все, других проблем нет. можно запилить все что угодно
Поэтому в норм языках проверка для статических типов данных делается во время компиляции.