Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизСтроки-константы в delphi XE Найти похожие ветки
← →
Димка На (2012-02-07 13:15) [0]Вот например:
procedure foo(const bar: UTF8String);
begin
...
end;
Вызываем:
Вот например:
foo("example");
Как компилятор сделает (А или Б)?
А. Строка будет храниться в памяти (и образе) изначально в кодировке UTF8 и передаваться будет ссылка на константу.
Б. Строка будет конвертироваться в UTF8String при каждом вызове.
← →
Dimka Maslov © (2012-02-07 13:22) [1]Отладчик и hex-редактор не спасут отца русской демократии?
← →
И. Павел © (2012-02-07 13:35) [2]> [0] Димка На (07.02.12 13:15)
Судя по Watch->Memory dump — А.
← →
И. Павел © (2012-02-07 13:43) [3][2] — неверно, я не правильно понял вопрос...
← →
Anatoly Podgoretsky © (2012-02-07 13:51) [4]
> Отладчик и hex-редактор не спасут отца русской демократии?
Спасет только штатная справка и учебники.
← →
Игорь Шевченко © (2012-02-07 14:34) [5]
> Как компилятор сделает
А от Б ничем не отличаются в приведенном примере
а вот foo("русский текст") отличаться будут. Потому что "русский текст" будет преобразован в UTF8 на этапе компиляции
← →
И. Павел © (2012-02-07 14:50) [6]Все-таки ответ А. Изначально константа в том формате, в котором ее ждет функция (ну, конечно, момент компиляции я не считал :).
← →
Dimka Maslov © (2012-02-07 15:14) [7]
> И. Павел © (07.02.12 14:50) [6]
У меня heх-редактор показал то же самое
← →
Димка На (2012-02-07 15:35) [8]
> Игорь Шевченко © (07.02.12 14:34) [5]
> > Как компилятор сделает
> А от Б ничем не отличаются в приведенном примере
> а вот foo("русский текст") отличаться будут. Потому что
> "русский текст" будет преобразован в UTF8 на этапе компиляции
Ошибаетесь. В кодировке UTF8String английские символы кодируются 1 байтом, а в WideString любой символ двумя.
> Отладчик и hex-редактор не спасут отца русской демократии?
Что-то я и забыл что так можно. Действительно, ответ А.
Всем спасибо =)
← →
Игорь Шевченко © (2012-02-07 20:35) [9]
> Ошибаетесь.
Не ошибаюсь
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.064 c