Ответы пользователя по тегу C
  • Как исправить предупреждение о конверсии в макросе?

    mrjbom
    @mrjbom Автор вопроса
    Для GCC смог использовать typeof:
    #define CLEAR_BIT_MSB(num, bit) ((num) &= (typeof((num)))(~(1 << ((sizeof(num) * 8) - 1 - (bit)))))
    .
    Не для GCC можно использовать такой вариант:
    #define CLEAR_BIT_MSB(num, num_type, bit) ((num) &= (num_type)(~(1 << ((sizeof(num) * 8) - 1 - (bit)))))

    CLEAR_BIT_MSB(bitmap[byte_offset], uint8_t, bit_offset);
    Ответ написан
    Комментировать