Если вы развернете макрос, вы получите следующее:
int main()
{
printf("%d",5++);
printf("%d",5);
}
Вы не можете выполнить постинкрементную константу 5
, поэтому вы получите ошибку.
Помните, что макросы нефункции.Если вы хотите, чтобы он действовал как функция, просто создайте функцию:
void arr(int b) {
printf("%d",b++);
printf("%d",b);
}