Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Строки-константы в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.06 c
6-1260901006
talero
2009-12-15 21:16
2013.03.22
idhttp и ssl


15-1348467779
alexdn
2012-09-24 10:22
2013.03.22
phpbb


2-1348029995
Dibed
2012-09-19 08:46
2013.03.22
Преобразование даты и времени


2-1338267500
SHerloK
2012-05-29 08:58
2013.03.22
Tchar и колесико


3-1286090959
shadowrun
2010-10-03 11:29
2013.03.22
Ламер и dbexpmys.dll