二乗定義ディレクティブを次のように実装しました。
#include <stdio.h>
#define SQR(y) ((y)*(y))
int main() {
int a;
printf("Enter : ");
scanf("%d",&a);
a = SQR(a);
printf("The square is: %d\n",SQR(a));
return 0;
}
しかし、実行するとエラーは発生しませんが、毎回間違った答えが返されます。
入力の 2 乗ではなく 4 乗を与えるのはなぜですか?