Non-ANSI names for compatibility */
#ifndef __cplusplus
#define max(a,b) (((a) > (b)) ? (a) : (b))
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
可见,max已经定义成带两个参数的宏了,你再去定义一个,程序会用该宏的定义去替换,
但发现你的参数是3个,和宏定义的2个矛盾,就提示出错了。
建议把你的max函数改成别的名字, 比如myMax之类的,免得和系统定义冲突。