Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.054 c
15-1337849446
Дмитрий С
2012-05-24 12:50
2013.03.22
Как правильно задать вопрос...


1-1302684323
MrBadge
2011-04-13 12:45
2013.03.22
KeyPreview


15-1332459005
Юрий
2012-03-23 03:30
2013.03.22
С днем рождения ! 23 марта 2012 пятница


1-1299075890
pvr
2011-03-02 17:24
2013.03.22
Заполнение странички с помощью TWebBrowser


15-1316779880
xayam
2011-09-23 16:11
2013.03.22
Физики ЦЕРН отменили предел скорости




   Наверх