Arlleex 283 October 20, 2023 Posted October 20, 2023 · Report post Использовал раньше самописные лительные "хвосты"-суффиксы #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__ и т.д.? На них можно полагаться для разных компиляторов? Или оно не стандартно и где-то может отсутствовать? Quote Share this post Link to post Share on other sites More sharing options...
MrYuran 34 October 20, 2023 Posted October 20, 2023 · Report post https://gist.github.com/willson556/3d36c21100a473f75f2e87d0398188ff Насколько я понял, IAR only Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 283 October 20, 2023 Posted October 20, 2023 · Report post Как минимум в CLang тоже есть, и в GCC, вроде, тоже. Quote Share this post Link to post Share on other sites More sharing options...