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