Предположим, что начальный адрес p = 0xfcf0, * p = 1, b = 2, значение @ 0xfcf4 = 5 и значение @ 0xfcf8 = 15
Макрос будет расширяться как
наименьший = ((* p ++) <= (b)? (* P ++): (b)); </p>
т.е. минимум = ((1) <= (2)? (* P ++): (b)); </p>
, поскольку * p увеличивается в два раза.
1) * p ++ -> теперь p будет указывать на адрес 0xfcf4;
2) * p ++ -> теперь p будет указывать на адрес 0xfcf8;
Так минимум = 15; (значения в адресе 0xfcf8). Надеюсь, это поможет.