Уточните что Вы имели ввиду когда писали: почему окончанием строки в любом компиляторе является #0 при чем здесь компилятор?
Понимаете, в интерпретаторе вы делаете виртуальную машину, которая и исполняет ваш код, когда как компилятор делает сразу исполняемый машинный код или ассемблерный листинг. Так как код исполняемый, он должен выполниться на какой нибудь Операционной Системе центральным процессором, поэтому правила тут устанавливает не разработчик, а та среда в которой исполняется код. А для процессора байт код равный 0 означает остановку исполнения.
Можете попробывать создать MessageBox и в середине сообщения вставить код 0 и посмотреть что из этого получится.
Поэтому любой компилятор, при трансляции заменит ваш код окончания на код стандартной остановки в ОС, для Windows и Linux это пока #0...
В Паскале вам необходимо указывать явную длинну строки, в Delphi пошли дальше, зачем это делать если при трансляции количество символов известно? Поэтому и был введен тип STRING который избавляет от дополнительного кода разработчика(но не уменьшает выходного кода )
Главное - следование идее. А знания, действительно, можно пополнять.
Тут уместен пример:
Сидят два мальчика в детском саду и мечтают как они полетят в космос.
Сидят два мальчика в институте и мечтают как по их проекту кто то полетит в космос.
Разница в этих мечтах - теоретическая база.
Вывод - идеи первых изначально глупость, идеи вторых - изначально гениальны!!!
Отредактировано satan (26-03-2009 09:33:23)