Широкий символ и символ в операторах присваивания и равенства

Предположим, что wc это wchar_t а также c это char,
1) Есть ли разница между этими двумя заданиями?

c = 'a';
wc = L'a';

2) Существует ли какое-либо правило, обеспечивающее равенство c а также wc для значений ASCII? Что именно означает wc == c компилятору?

1

Решение

Нет — стандарт гарантирует, что и базовый набор символов выполнения, и базовый набор символов широкого выполнения будут содержать «a», но не гарантирует, что он будет иметь одинаковое значение в обоих.

§2.3 / 3 дает несколько ограничений (например, цифры должны быть последовательными), ни одно из которых не применимо здесь, и окончательный вариант: «Значения элементов наборов символов выполнения и наборов дополнительных элементов зависят от конкретной локали».

Таким образом, это не только не гарантируется, но, по крайней мере, теоретически, оно может даже измениться, когда / если вы измените локаль.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]