Является ли int x = 'fooo' расширением компилятора?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Является ли int x = 'fooo' расширением компилятора?

Сообщение Anonymous »

Я видел и использовал следующий код C++:

Код: Выделить всё

int myFourcc = 'ABCD';
Она работает в последних версиях GCC, не знаю, насколько последней.
Есть ли эта функция в стандарте?
Как она называется?
У меня возникли проблемы с поиском в Интернете...
РЕДАКТИРОВАТЬ:
Я также нашел эту информацию на будущее. наблюдатели:
из документации gcc

Компилятор оценивает константу многосимвольного символа посимвольно, сдвигая предыдущее значение влево на количество битов на целевой символ, а затем выполняет ИЛИ в битовом шаблоне нового символа, усеченного до ширина целевого символа. Последнему битовому шаблону присваивается тип int, и поэтому он подписывается независимо от того, подписаны ли отдельные символы или нет (небольшое отличие от версий GCC 3.1 и более ранних). Если в константе больше символов, чем помещается в целевой int, компилятор выдает предупреждение, а лишние начальные символы игнорируются.
Например, 'ab' для целевого объекта с 8-битный символ будет интерпретироваться как (int) ((unsigned char) 'a' * 256 + (unsigned char) 'b')', а '\234a' как (int) ((unsigned char) '\234' * 256 + (беззнаковый символ) 'a')'.


Подробнее здесь: https://stackoverflow.com/questions/699 ... -extension
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»