Это мощность препроцессоров Си. Прежде всего, вы можете определить макросы:
#define MY_MACRO
После этого вы можете проверить, определен ли макрос:
#ifdef MY_MACRO
code, code, code
code, code, code
#endif
Это означает, что код внутри блоков #ifdef
и #endif
будет действительным, только если этот макрос был определен. Иначе это будет проигнорировано, и с проигнорировано Я имею в виду, что это будет, как будто вы никогда не писали это.
Противоположностью #ifdef
является #ifndef
. #endif
одинаково для обоих случаев.
В вашем случае вы можете использовать макросы для изменения действия функции:
#define MY_MACRO
void my_function() {
#ifdef MY_MACRO
code_for_my_macro();
#endif
#ifdef ANOTHER_MACRO
code_for_another_macro();
#endif
}
.. поэтому единственное, что вам нужно сделать для переноса кода, это изменить макрос.
В макросах больше утилит. Ищите «препроцессоры C», и вы увидите все, что вы можете с ними сделать.