Я видел простые примеры макросов, но размышлял о чем-то более сложном, скажем, с операторами if и переназначении данных переменных. Можно ли сделать более сложные выражения вроде этого в макросе? У меня есть функция, которая будет запускаться миллиарды раз, поэтому было бы хорошо, если бы препроцессор просто вставлял туда код, а не передавал переменные туда-сюда.
Скажите, у меня есть следующая функция:
int foo(int a, int b, int c){
if (a > 2)
c = a;
if (b > 3)
c = b;
return a + b + c;
}
Как я могу превратить это в макрос?