Смысл макросов в C заключается в том, что они раскрываются во время компиляции.
Таким образом, использование макросов не влияет на скорость вашего кода, что будет иметь функция, выполняющая то же самое.
Следовательно, пример использования:
#define MYPRINTF(x) printf("MYPRINTF says : %s\n",x)
MYPRINTF("blah");
Приведенный выше код будет переведен компилятором непосредственно в:
printf("MYPRINTF says : %s\n","blah");
Весь смысл в том, что это быстрее, чем определение функции, такой как эта:
void myprintf(char *x)
{
printf("myprintf says : %s\n","blah");
}
Поскольку нет никаких накладных расходов (в функции вам нужно поместить аргументы в стек и т. Д.).
В интерпретируемом языке, таком как PHP, вышеприведенное не выполняется, поскольку все выполняется непосредственно во время выполнения, поэтому использование механизма, подобного C #define
, было бы абсолютно бесполезным - поэтому, чтобы ответить на ваш вопрос, вместо этого просто используйте обычные функции.