Например, как избежать двукратного написания "func_name"?
#ifndef TEST_FUN
# define TEST_FUN func_name
# define TEST_FUN_NAME "func_name"
#endif
Я хотел бы следовать правилу Single Point of Truth.
Версия препроцессора C:
$ cpp --version
cpp (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)