Specify wide-character constant?
От: igna Россия  
Дата: 16.01.09 13:33
Оценка:
"Use wide-character constants in place of multicharacter constants to ensure portability. " — такой совет можно прочитать здесь. И дальше пример:

char ch = 'x';          // Specify normal character constant.
int mbch = 'ab';        // Specify system-dependent
                        //  multicharacter constant.
wchar_t wcch = L'ab';   // Specify wide-character constant.


Тем не менее при компиляции VC++ выдает предупреждение "characters beyond first in wide-character constant ignored" и значением L'ab' становится код буквы 'a'.

Так в чем суть совета?
Re: Specify wide-character constant?
От: Arsenicum Россия  
Дата: 20.01.09 14:11
Оценка:
Здравствуйте, igna, Вы писали:

I>"Use wide-character constants in place of multicharacter constants to ensure portability. " — такой совет можно прочитать здесь. И дальше пример:


I>
I>char ch = 'x';          // Specify normal character constant.
I>int mbch = 'ab';        // Specify system-dependent
I>                        //  multicharacter constant.
I>wchar_t wcch = L'ab';   // Specify wide-character constant.
I>


I>Тем не менее при компиляции VC++ выдает предупреждение "characters beyond first in wide-character constant ignored" и значением L'ab' становится код буквы 'a'.


I>Так в чем суть совета?


Как-бы намекает, что wchar_t содержит только один символ и остальные символы отбрасываются.
Re: Specify wide-character constant?
От: dcb-BanDos Россия  
Дата: 20.01.09 14:25
Оценка:
Здравствуйте, igna, Вы писали:


I>Так в чем суть совета?


может имелось ввиду

   wchar_t wcch = 'ab';


??
Ничто не ограничивает полет мысли программиста так, как компилятор.
Re[2]: Specify wide-character constant?
От: igna Россия  
Дата: 20.01.09 17:13
Оценка:
Здравствуйте, Arsenicum, Вы писали:

I>>Так в чем суть совета?


A>Как-бы намекает, что wchar_t содержит только один символ и остальные символы отбрасываются.


Это сообщение намекает, а совета суть в чем?
Re: Specify wide-character constant?
От: Erop Россия  
Дата: 20.01.09 18:32
Оценка:
Здравствуйте, igna, Вы писали:

I>
I>wchar_t wcch = L'ab';   // Specify wide-character constant.
I>


I>Так в чем суть совета?


Видимо советует на mbc константу определять, а правильную юникодную...
Либо, наоборот, сохранять литерал в int...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Specify wide-character constant?
От: igna Россия  
Дата: 20.01.09 20:11
Оценка:
Здравствуйте, Erop, Вы писали:

I>>
I>>wchar_t wcch = L'ab';   // Specify wide-character constant.
I>>


I>>Так в чем суть совета?


E>Видимо советует на mbc константу определять, а правильную юникодную...

E>Либо, наоборот, сохранять литерал в int...

А L'ab' это какой случай?
Re[3]: Specify wide-character constant?
От: Arsenicum Россия  
Дата: 21.01.09 10:07
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Arsenicum, Вы писали:


I>>>Так в чем суть совета?


A>>Как-бы намекает, что wchar_t содержит только один символ и остальные символы отбрасываются.


I>Это сообщение намекает, а совета суть в чем?


Советует так не делать

wchar_t wc = L'а' <- один символ
wchar_t ws[] = L"абвгде" <- строка
Re[4]: Specify wide-character constant?
От: igna Россия  
Дата: 21.01.09 10:51
Оценка:
Здравствуйте, Arsenicum, Вы писали:

A>Советует так не делать


Да? Это как "так не делать"?

Вроде вот он совет: "Use wide-character constants in place of multicharacter constants"

А вот пример использования wide-character constant (во всяком случае, если верить комментарию):

wchar_t wcch = L'ab'; // Specify wide-character constant.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.