Est max(a,b) défini dans stdlib.h ou pas?

Je suis l'aide de deux ordinateurs, chacun avec une autre version de visual studio. Sur visual studio 2008 ordinateur mon code compile. Sur le visual 2010 ordinateur mon code ne compile pas parce que je suis en utilisant la macro max(a,b) qui, autant que je sais, c'est défini dans stdlib.h. Je ne peux pas il suffit de définir max(a,b) parce que ça va être une redéfinition sur le visual 2008 ordinateur. Mais si je ne définissent pas max(a,b) mon code ne compile pas sur le visual 2010 ordinateur.

Toute solution?

En dehors de la portabilité des problèmes abordés dans la accepté de répondre, je suis curieux de savoir pourquoi vous avez des problèmes avec le déplacement du code à l'aide de la max() macro à partir de VS2008 à VS2010. max() est défini dans VS2010 de stdlib.h de la même manière qu'il est dans VS2008 (il y a des options qui s'éteint à la définition, mais ils sont les mêmes dans les deux compilateurs). En d'autres termes, il y a quelque chose de plus que le passage de VS2008 à VS2010 (et que max() en cours de définition dans stdlib.h est non-standards conformes) qui a provoqué ce problème pour vous.
Sur mon Visual C la stdlib.h définit __min et __max.
stackoverflow.com/questions/3437404/min-and-max-in-c
Dans visual studio 2015, min et max sont toujours définis dans stdlib.h...

OriginalL'auteur snakile | 2010-11-20