Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Префикс (макрос) L перед строкой 
:(
    Опции темы
neokoder
Дата 2.3.2011, 18:50 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 14.4.2010

Репутация: нет
Всего: -3



Где можно почитать подробнее о том какие префиксы существуют? Не нашёл по поиску и в справке об этом ничего.
Насколько знаю вот есть префикс L преобразует строку в UNICODE16. Но узнал я об этом только из какого то примера(уже не помню откуда). А хотелось бы поподробнее об этом почитать.
 
PM MAIL   Вверх
borisbn
Дата 2.3.2011, 19:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



лучше стандарта не придумаешь


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
neokoder
Дата 2.3.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 14.4.2010

Репутация: нет
Всего: -3



А по конкретнее можете дать ссылку? Где там искать?
PM MAIL   Вверх
mes
Дата 2.3.2011, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



L - это не макрос.. 



--------------------
PM MAIL WWW   Вверх
neokoder
Дата 2.3.2011, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 14.4.2010

Репутация: нет
Всего: -3



Цитата(mes @  2.3.2011,  19:45 Найти цитируемый пост)
L - это не макрос.. 

Ну а что это? Объясните пожалуйста поподробнее.
PM MAIL   Вверх
borisbn
Дата 2.3.2011, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Префикс L - это конструкция языка, превращающая строку, стоящую после неё, из строки, состоящей из char в строку, состоящую из wchar_t. Это необходимо, если, например, какая-то функция требует на входе wchar_t*, а у вызывающего есть готовая строка (не хранящаяся где-то в переменной, а просто константа в ковычках). В этом случае пишется так
foo( L"hello" );
Сейчас стандарта нет под рукой, но если ты его скачал, то поищи wchar_t. Думаю где-нибудь рядом будет про L


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
neokoder
Дата 2.3.2011, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 14.4.2010

Репутация: нет
Всего: -3



Я скачал файл n1040.pdf там есть упоминание L, но ничего толком не объяснено. А ведь есть ещё _T, TEXT  где обо всех этих модификаторах строк можно почитать?

Это сообщение отредактировал(а) neokoder - 2.3.2011, 21:08
PM MAIL   Вверх
mes
Дата 2.3.2011, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(neokoder @  2.3.2011,  20:06 Найти цитируемый пост)
. А ведь есть ещё _T, TEXT 

это нестандартные макросы подставляющие L, если  unicode и ничего в  противном случае.. 




--------------------
PM MAIL WWW   Вверх
alexvs11
Дата 2.3.2011, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



Цитата(borisbn @  2.3.2011,  20:20 Найти цитируемый пост)
Префикс L - это конструкция языка, превращающая строку, стоящую после неё, из строки, состоящей из char в строку, состоящую из wchar_t. Это необходимо, если, например, какая-то функция требует на входе wchar_t*, а у вызывающего есть готовая строка (не хранящаяся где-то в переменной, а просто константа в ковычках). В этом случае пишется такfoo( L"hello" );Сейчас стандарта нет под рукой, но если ты его скачал, то поищи wchar_t. Думаю где-нибудь рядом будет про L

+ аналогично для символов L'a'

PM MAIL   Вверх
borisbn
Дата 2.3.2011, 22:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(neokoder @  2.3.2011,  21:06 Найти цитируемый пост)
А ведь есть ещё _T, TEXT

это чисто мелкомягкие макросы, которые делают примерно следующее
#define _T( x ) \
    #if defined ( _UNICODE ) \
         L##x                           \
    #else                               \
        x                                  \
    #endif                             \


Это сообщение отредактировал(а) borisbn - 2.3.2011, 22:11


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
malor
  Дата 12.8.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Код
#define _T( x )    \
    #if defined ( _UNICODE )  \
         L##x                            \
    #else                                \
        x                                   \
    #endif                               \

Значение "#if defined ( _UNICODE ) " зависит от того, как выставлена в настройках проекта опция "Character Set"?
PM MAIL   Вверх
Alca
Дата 12.8.2011, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



да

Какая IDE?

Это сообщение отредактировал(а) Alca - 12.8.2011, 15:56


--------------------
PM WWW ICQ Skype Jabber   Вверх
malor
  Дата 12.8.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



VS 2008.

А если опция равна "Use Multi-Byte Character Set", то что чему равно значение "defined(_UNICODE)"?
PM MAIL   Вверх
spyswamp
Дата 13.8.2011, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



malor, false. Это же очевидно! Чтобы задефайнился _UNICODE, нужно Character set выставлять в Unicode. Когда ты выставляешь в Use Multi-Byte Character Set, то дефайнится _MBCS. Ты бы хоть в доку заглянул для приличия, чем тут мозги всем компостировать. На тебе чтиво на выходные: http://www.codeguru.com/forum/showthread.php?t=404079


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.3776 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.