How to use #define to create function factory in C

1 Answer

0 votes
#include <stdio.h>
 
// create function factory
#define FUNCTION(name, n) int fun_##name(int x) { return n * x;}
 
FUNCTION(f1, 3)
FUNCTION(f2, 4)
 

int main(void)
{
    printf("f1(15): %d\n", fun_f1(15) );
    printf("f2(17): %d\n", fun_f2(17) );
    
    return 0;
}

 
/*
run:

f1(15): 45
f2(17): 68

*/

 



answered Aug 23, 2016 by avibootz

Related questions

1 answer 127 views
1 answer 157 views
1 answer 110 views
110 views asked Mar 7, 2024 by avibootz
2 answers 129 views
129 views asked Feb 9, 2023 by avibootz
1 answer 177 views
1 answer 183 views
1 answer 156 views
...