#include <stdio.h>
/*マクロ宣言です。使うところでどう呼び出されるか分からないので、余分に括弧を付けるのが慣例です。
#がつく命令はプリプロセッサ命令といって、コンパイル時の処理を指定するものです。
なのでマクロを使用することで関数よりも実行時のロスを減らせる代わりに、コンパイル時間が長くなります。
この程度の処理だったらマクロの方が簡単で高速でしょう。
しかしマクロは単純にコードを置換するだけなので、変数の不一致などには無頓着でそのまま置換しちゃいます。
そこのところは注意してください
*/
#define HEIKIN(a,b) (((a)+(b))/2)
void main(){
/*全てdoubleで宣言しました。キャストするのがめんどくさいので。*/
double a, b;
/*doubleのエスケープシーケンスは%fと言いましたが、scanfでdoubleを指定する場合は「%lf」です
ややこしいですが、我慢して指定しましょう・・・*/
printf("数字を入力してください : ");
scanf("%lf", &a);
printf("もういっちょ入力してください : ");
scanf("%lf", &b);
/*マクロを呼び出してます。これでここは上に宣言した通りに置換されます。
ね、かんたんでしょ?*/
printf("2つの数字の平均は %f です。", HEIKIN(a,b));
return;
}
最終更新:2008年07月28日 17:04