http://kor.i2p/books/The%20C%20Programming%20Language%20by%20K&R/chapter4.html
Each occurrence of a formal parameter (here A or B )
will be replaced by the corresponding actual argument. Thus the line x = max(p+q, r+s); will be replaced by the line x = ((p+q) > (r+s) ? (p+q) : (r+s)); So long as the arguments are treated consistently, this macro will serve for
any data type; there is no need for different kinds of max for different
data types, as there would be with functions.