Defining a macro to compare two values : Macro Function « Macro Preprocessor « C / ANSI-C






Defining a macro to compare two values

Defining a macro to compare two values

/*
The macro function can work with numerical values
of any type. The values can be variables, constants or expressions.
*/
#include <stdio.h>

#define COMPARE(x,y)   ((x)<(y)?-1:((x)==(y)?0:1))

int main()
{
  double a = 1.5;
  int n = 2;
  float z = 1.1f;
  printf("\n compare %lf (double) with %f (float): %d", a , z, COMPARE(a,z));
  printf("\n compare %lf (double) with %d (int): %d", a , n, COMPARE(a,n));
  printf("\n compare %d (int) with %f (float): %d", n , z, COMPARE(n,z));
  printf("\n compare \" n * a\" = %lf \n"
    " with \"n+1\" = to %d (double): %d",
     n*a , n+1, COMPARE(n*a,n+1));
  printf("\n");
}

           
       








Related examples in the same category

1.Defining a macro to output the value of an expressionDefining a macro to output the value of an expression
2.Generate a square tableGenerate a square table
3.Define small function in macro
4.Make string
5.Use marco for small function
6.Use macro to find the minor variable
7.Define Macro as simple function
8.Use Macro to check the int range
9.Use Macro to get the bigger int value