Трансляция кода Delphi в код C++Builder
Категория реферата: Рефераты по информатике, программированию
Теги реферата: урок изложение, конспект урока 3
Добавил(а) на сайт: Iljuhin.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
char psDemo[] = "Hello, there!";
char * psDemo = new char[26];
Для обработки строк имеется ряд библиотечных функций. Основные из них strcat — конкатенация (склеивание) двух строк, strcmp — сравнение двух строк, strcpy — копирование одной строки в другую, strstr — поиск в строке заданной подстроки, strlen — определение длины строки, strupr — преобразование символов строки к верхнему регистру, sprintf — построение строки по заданной строке форматирования и списку аргументов и ряд других функций.
OP
Delphi поддерживает строки практически неограниченной длины (до 2 Гб), в дополнение к 255-символьным строкам, известным как pascal-строки. Новая директива компилятора $Н позволяет контролировать смысл использования зарезервированного слова string. Состояние этой директивы по умолчанию ($Н+) подразумевает использование в качестве типа string длинных строк. $Н- подразумевает использование коротких 255-символьных pascal-строк. Все компоненты Delphi используют длинные строки.Следует отметить, что, вне зависимости от состояния директивы $Н, если специфирована максимальная длина строки, меньшая 255, то подразумевается короткая строка (ShortString). Назначение длины строки с использованием квадратных скобок всегда подразумевает подтип ShortString. Длинные строки, введенные в Delphi 2.0, в большинстве случаев совместимы со строками старого типа. При этом необходимо принимать во внимание следующие особенности их использования:
Память для длинных строк выделяется динамически. Длинные строки являются указателями на строки, хранимые в хипе (heap). Когда вы изменяете длину строки, Delphi32 перераспределяет память. Поскольку менеджер памяти пытается перевыделить память в той же самой области, он не всегда может это сделать. Поэтому, для увеличения длины строки, следует использовать введенную в Delphi 2.0 процедуру SetLength, перераспределяющую память, если это возможно
Длинные строки автоматически заканчиваются #0, поэтому вы можете использовать те методы работы с этими строками, которые применяли для обработки null-terminated string. Поэтому теперь отсутствует необходимость использовать функции конвертации, такие как StrPCopy, хотя Delphi и поддерживает короткие строки
Delphi поддерживает счетчик использований для каждой длинной строки. Это значит, что если ваше приложение копирует строку (например, передавая ее в качестве строкового параметра в процедуру), то автоматически увеличивается количество ссылок на строку. Когда заканчивается использование очередной копии строки, то есть, происходит выход за область видимости, счетчик использований автоматически уменьшается. Когда счетчик использований становится равным нулю, выделенная под строку память освобождается автоматически
Поскольку реально длинные строки не дублируются, а для них поддерживаются счетчики использований, то присваивание длинных строк происходит намного быстрее по сравнению с короткими строками.Несмотря на то, что большая часть кода, используемого при работе со строками интероперабельно для коротких и длинных строк (то есть применимо к обоим видам строк), тем не менее, некоторые операции над короткими строками не применимы к длинным строкам. Длинные строки не могут передаваться в параметры типа OpenString или как var-параметры, соответствующие коротким строкам.
Массивы
Массивы - упорядоченные последовательности одного типа данных (могут включать также и объекты). Методы для объявления массива в C ++ и OP - различные.
С++
Массивы "основаны на нуле" - первый элемент - элемент [0], второй элемент элемент [1], третий - [2], и т.д. Это всегда запутывает новичков.
Объявление массива:
double Array[31];
Использование :
for(int i = 30, j = 29; i > 0; i--,j--)
Array[i] = Array[j];
OP
Начало массива в элементе 1... но не всегда.В Delphi встречаются компоненты и объекты "основаные на нуле" наподобие С++. Например TList элементы которого начинаются с нуля. Любой массив который вы объявите будет основан на единице
var ArrayS: array[1..31] of double;
i,j: integer;
begin
j := 30;
for i := 31 downto 2 do
begin
Рекомендуем скачать другие рефераты по теме: реферат сила, культурология как наука.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата