Arlleex 131 20 октября, 2023 Опубликовано 20 октября, 2023 · Жалоба Использовал раньше самописные лительные "хвосты"-суффиксы #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__ и т.д.? На них можно полагаться для разных компиляторов? Или оно не стандартно и где-то может отсутствовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 20 октября, 2023 Опубликовано 20 октября, 2023 · Жалоба https://gist.github.com/willson556/3d36c21100a473f75f2e87d0398188ff Насколько я понял, IAR only Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 20 октября, 2023 Опубликовано 20 октября, 2023 · Жалоба Как минимум в CLang тоже есть, и в GCC, вроде, тоже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться