How to create function-like macro in C

2 Answers

0 votes
#include <stdio.h>

#define POW(X, Y) \
({ \
        int i, mul = 1; \
        for (i = 0; i < Y; i++) \
                mul *= X; \
        mul; \
}) 

int main(void)
{
        int rv;

        rv = POW(2, 3); 
        printf("POW(2, 3) = %d\n", rv);
        
        return 0;
}
  
    
/*
run:

POW(2, 3) = 8

*/

 



answered Jul 29, 2017 by avibootz
0 votes
#include <stdio.h>

#define max(a, b) ((a) > (b) ? (a) : (b))

int main(void)
{
    printf("%d\n", max(3, 9));
    printf("%d\n", max(max(3, 9), 13));
    
    return 0;
}
   
/*
run:

9
13

*/

 



answered Jul 29, 2017 by avibootz

Related questions

1 answer 139 views
1 answer 162 views
1 answer 211 views
1 answer 194 views
2 answers 160 views
...