У меня есть функция, которую мне нужно макровизировать. Функция содержит временные переменные, и я не могу вспомнить, существуют ли какие-либо правила использования временных переменных в макроподстановках.
long fooAlloc(struct foo *f, long size)
{
long i1, i2;
double *data[7];
/* do something */
return 42;
}
Форма MACRO:
#define ALLOC_FOO(f, size) \
{\
long i1, i2;\
double *data[7];\
\
/* do something */ \
}
Это нормально? (то есть никакого неприятного побочного эффекта - кроме обычных: не "безопасный тип" и т.д.). Кстати, я знаю, что "макросы злы" - я просто должен использовать его в этом случае - не так много выбора.