Est-il possible d'utiliser une instruction if dans #define?

Je suis en train de faire une macro avec la formule suivante: (a^2/(a+b))*bet je veux faire en sorte que la il n'y aura pas de division par zéro.

#define SUM_A( x, y ) if( x == 0 || y == 0) { 0 } else { ( ( ( x * x ) / ( ( x ) + ( y ) ) ) * ( y ) )}

et puis j'ai appeler la macro à l'intérieur:

float a = 40, b = 10, result; 
result = SUM_A(a, b); 
printf("%f", result);

J'ai essayé d'utiliser des parenthèses autour de la fonction si, mais je continue à faire des erreurs de syntaxe avant de l'instruction if. J'ai aussi essayé d'utiliser le retour, mais j'ai lu quelque part que vous n'êtes pas censé l'utiliser à définir.

source d'informationauteur Frey1337 | 2012-10-20