Bonjour,
J'aimerai savoir s'il est possible de définir 2 macros ayant le même nom, mais un nombre de paramètres différents.
Par exmeple :
J'imagine que la réponse est non, puisque le compilateur refuse, ne défini au final que la deuxième macro :Code:
1
2
3
4
5
6 #define max(a, b) ((a) > (b) ? (a) : (b)) #define max(a, b, c) ((a) > (b) ? ((b) > (c) ? (c) : (b)) : ((a) > (c) ? (c) : (a))) ... i = max(1, 2); j = max(1, 2, 3);
Savez vous pourquoi ça ne marche pas, et s'il y a un moyen de contourner le problème?Code:
1
2
3
4 attention : « max » redéfini ... erreur: macro « max » requiert 3 arguments, mais seulement 2 ont été passés