Note that these macros only works with ANSI C.
#if INCLUDE == 'H' #define SameFunc(Name) extern Name(); #define Function(Ename,Cname) extern Cname(); #define SpecialF(Ename,Type,Cname) extern Type Cname(); #define RealFunc(Ename,Cname) extern double Cname(); #define SameReal(Name) extern double Name(); #endif #if INCLUDE == 'T' #define SameFunc(Name) {#Name,Name}, #define Function(Ename,Cname) {#Ename,Cname}, #define SpecialF(Ename,Type,Cname){#Ename,(int(*)())Cname}, #define RealFunc(Ename,Cname) #define SameReal(Name) #endif #if INCLUDE == 'R' #define SameFunc(Name) #define Function(Ename,Cname) #define SpecialF(Ename,Type,Cname) #define RealFunc(Ename,Cname) {#Ename,Cname}, #define SameReal(Name) {#Name,Name}, #endif