История изменений
Исправление KivApple, (текущая версия) :
Расширяемость. Выделили бы 1 байт на длину строки как в Pascal, были бы строки 255 символов. Выделили бы 2 байта, то с одной стороны кто-нибудь бы ныл, что целый байт впустую расходуется, потому что ему не нужны длинные строки, но при этом строки бы устарели с развитием компьютеров, потому что 64К символов тоже бывает мало. А 4 байта никто бы в те времена не выделил, потому что никто не знал, что будут массовые компьютеры с такими огромными объёмами памяти.
А null-terminated строки получились такие, что стандарт из прошлого века и сишные алгоритмы работы с этими строками практически без изменений могут работать даже на современных 64-битных машинах и обрабатывать строки размеров с ОЗУ.
Исправление KivApple, :
Расширяемость. Выделили бы 1 байт на длину строки как в Pascal, были бы строки 255 символов. Выделили бы 2 байта, то с одной стороны кто-нибудь бы ныл, что целый байт впустую расходуется, потому что ему не нужны длинные строки, но при этом строки бы устарели с развитием компьютеров, потому что 64К символов тоже бывает мало.
А null-terminated строки получились такие, что стандарт из прошлого века и сишные алгоритмы работы с этими строками практически без изменений могут работать даже на современных 64-битных машинах и обрабатывать строки размеров с ОЗУ.
Исправление KivApple, :
Расширяемость. Выделили бы 1 байт на длину строки как в Pascal, были би строки 255 символов. Выделили бы 2 байта, то с одной стороны кто-нибудь бы ныл, что целый байт впустую расходуется, потому что ему не нужны длинные строки, но при этом строки бы устарели с развитием компьютеров, потому что 64К символов тоже бывает мало.
А null-terminated строки получились такие, что стандарт из прошлого века и сишные алгоритмы работы с этими строками практически без изменений могут работать даже на современных 64-битных машинах и обрабатывать строки размеров с ОЗУ.
Исходная версия KivApple, :
Расширяемость. Выделили бы 1 байт на длину строки как в Pascal, были би строки 255 символов. Выделили бы 2 байта, то с одной стороны кто-нибудь бы ныл, что целый байт впустую расходуется, потому что ему не нужны длинные строки, но при этом строки бы устарели с развитием компьютеров.
А null-terminated строки получились такие, что стандарт из прошлого века и сишные алгоритмы работы с этими строками практически без изменений могут работать даже на современных 64-битных машинах и обрабатывать строки размеров с ОЗУ.