Баг ли это. arithmetic overflow in constant expression - C (СИ)
Формулировка задачи:
Существует компилятор для микроконтроллеров MPLAB® XC8 C COMPILER. Начиная с некоторой версии он выдаёт предупреждения и даже на такой кодно на такой нетНа других С компиляторах, например gcc, такого предупреждения не получить.
Как избавится от предупреждения было найдено тут. Интересует соответствие со стандартом С, есть какие то предпосылки выдавать предупреждение, или это следует считать багом компилятора?
arithmetic overflow in constant expression
на такой код (на последнюю строчку)#define PROG_VERSION 12345 unsigned char bLow; bLow=(unsigned char)(PROG_VERSION & 0xFF);
#define PROG_VERSION 12345 unsigned char bLow; bLow=(unsigned char)PROG_VERSION;
#define PROG_VERSION 12345 unsigned char bLow; static const int i = PROG_VERSION; bLow=(unsigned char)(i & 0xFF);
Решение задачи: «Баг ли это. arithmetic overflow in constant expression»
textual
Листинг программы
#define PI 3.1415
Объяснение кода листинга программы
В данном коде определен макроопределение PI, которое равно 3.1415. Это макроопределение будет использоваться в дальнейшем коде для выполнения математических операций, связанных с Пи-числом. Вот список элементов кода:
#define PI 3.1415
- Определение макроопределения PI, равного 3.1415.- ... - Далее в коде будут использоваться макроопределение PI для выполнения математических операций. Пожалуйста, уточните, если вам нужно больше информации.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д