A preprocessor macro that returns the larger of two values.


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


a, b
Values of any numeric type to be compared.

Return Value

__max returns the larger of its arguments.


The __max macro compares two values and returns the value of the larger one. The arguments can be of any numeric data type, signed or unsigned. Both arguments and the return value must be of the same data type.

The argument returned is evaluated twice by the macro. This can lead to unexpected results if the argument is an expression that alters its value when it is evaluated, such as *p++.


Macro Required header
__max <stdlib.h>


For more information, see the example for __min.

See also

Floating-Point Support