Про це згадується в описі правила 10.5 оператори повинні бути застосовані до "маленьких цілих типів" для приведення. Типи unsigned char і unsigned short згадуються явно.
[Правило 10.5 MISRA 2012, порада]: Неприпустимий гіпс; не можна перевести від 'essentially unsigned' до 'essentially enum<i>' [Правило MISRA 2012 11.1, обов’язкове]: не можна виконувати перетворення між покажчиком на функцію та будь-яким іншим типом.
Обов’язкове правило 10.1 MISRA 2004, Заборонене неявне перетворення: непостійний аргумент функції. Обов’язкове правило 10.1, заборонене неявне перетворення: непостійний аргумент функції.
Правило 10.4 є правильним запобігає неявним перетворенням типів, які можуть призвести до зміни знаку. Це те, що відбувається у вашому коді, var1 + var2 призводить до того, що var2 мовчки перетворюється на беззнаковий тип. Це недобре, оскільки має бути причина, чому ця змінна була підписана в першу чергу.
Підтримувані правила MISRA C:2023
правило | Назва правила | Категорія |
---|---|---|
Правило 1.5 | Застарілі елементи мови використовувати не можна. | Обов'язковий |
Правило 2.1 | Проект не повинен містити недоступний код. | Обов'язковий |
Правило 2.2 | Проект не повинен містити мертвий код. | Обов'язковий |
Правило 2.3 | Проект не повинен містити невикористані оголошення типів. | консультативний |
Про це згадується в описі правила 10.5 оператори повинні бути застосовані до "маленьких цілих типів" для приведення. Типи unsigned char і unsigned short згадуються явно.