(Macro) Calculates the maximum of two numbers.


max(x, y)


x: the first number; may be any number or numeric expression.

y: the second number; may be any number or numeric expression.


The larger of the two parameter values.


sensVal = max(senVal, 20); // assigns sensVal to the larger of sensVal or 20
                           // (effectively ensuring that it is at least 20)


Perhaps counter-intuitively, max() is often used to constrain the lower end of a variable’s range, while min() is used to constrain the upper end of the range.


Because of the way max() is implemented, avoid using other functions inside the parentheses. It may lead to incorrect results:

max(a--, 0);   // avoid this - yields incorrect results

a--;           // use this instead -
max(a, 0);     // keep other operations outside max()

Arduino Compatibility

The Maple implementation of max() is compatible with Arduino.

See Also

License and Attribution

Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.