Опишу как у меня возникла потребность в таком выражении Есть контроллер, у него используется три канала АЦП, номера каналов заданы дефайнами CHN_A CHN_B CHN_C (в следующей ревизии платы они могут поменяться) Каналы опрашиваются автоматически, опрашиваемые каналы задаются маской в АЦП ((1<<CHN_A)|(1<<CHN_B)|(1<<CHN_C)) результаты забираются через ДМА в буфер adc. Что бы искать нужный результат написал функцию #define CHN_IDX(chn) ((chn>CHN_A?1:0)+(chn>CHN_B?1:0)+(chn>CHN_C?1:0)) и использую это так adc[CHN_IDX(CHN_A)] и тут возникает предупреждение