次の式でマクロを作成しようとしてい(a^2/(a+b))*b
ます。、ゼロ除算がないことを確認したいと思います。
#define SUM_A( x, y ) if( x == 0 || y == 0) { 0 } else { ( ( ( x * x ) / ( ( x ) + ( y ) ) ) * ( y ) )}
次に、main内のマクロを呼び出します。
float a = 40, b = 10, result;
result = SUM_A(a, b);
printf("%f", result);
if関数を角かっこで囲んでみましたが、ifステートメントの前に構文エラーが発生し続けます。私もreturnを使ってみましたが、defineでそれを使うべきではないことをどこかで読みました。