Перейти к содержанию
    

Не вижу, где берутся определения __INT8_C_SUFFIX__ и т.д.

Использовал раньше самописные лительные "хвосты"-суффиксы

#define INT_LITERAL_SUFFIX_OCT_0
#define INT_LITERAL_SUFFIX_OCT_1
#define INT_LITERAL_SUFFIX_OCT_2
#define INT_LITERAL_SUFFIX_OCT_3
#define INT_LITERAL_SUFFIX_OCT_4 ll
#define INT_LITERAL_SUFFIX_OCT_5 ll
#define INT_LITERAL_SUFFIX_OCT_6 ll
#define INT_LITERAL_SUFFIX_OCT_7 ll

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

И вот относительно недавно обнаружил, что среди вороха всплывающих идентификаторов в IDE мелкнул __INT8_C_SUFFIX__, а за ним и __UINT8_C_SUFFIX__ и т.д. для всех целых типов.

Подумал, чего мне свои определения писать для каждой платформы, если они уже где-то определены. Очень надеялся, что эти определения будут где-нибудь в стандартном <stdint.h>, ан-нет.

Это чисто компиляторные предопределенные макросы, наряду со всякими __LINE__, __FILE__ и т.д.? На них можно полагаться для разных компиляторов? Или оно не стандартно и где-то может отсутствовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

https://gist.github.com/willson556/3d36c21100a473f75f2e87d0398188ff

 

Насколько я понял, IAR only

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...