今回は、記号定数を使ってみましょう。
プログラム例 その1
#include <stdio.h>
void main(void) {
int a = 0, i;
for (i=1; i<=10; i++) {
a = a + i;
}
printf("%dから%dの合計は%dです\n", 1, 10, a);
}
上記プログラムは1から10まで合計を表示しますが、
10から100までを合計を表示するように改造してみましょう。
プログラム例 その2
#include <stdio.h>
void main(void) {
int a = 0, i;
for (i=10; i<=100; i++) {
a = a + i;
}
printf("%dから%dの合計は%dです\n", 10, 100, a);
}
4箇所を直せばOKですが、もっと便利な方法があるのです。
プログラム例 その3
#include <stdio.h>
#define FROM 10
#define TO 100
void main(void) {
int a = 0, i;
for (i=FROM; i<=TO; i++) {
a = a + i;
}
printf("%dから%dの合計は%dです\n", FROM, TO, a);
}
まず、記号定数と呼ばれる書き方です。
#define FROM 10
#define TO 100
この時、文末にセミコロンは付けませんので、注意して下さい。
プログラムの中にFROMと言う文字を発見したら10と置き換えてくれ。
という意味になります。
同じくTOと言う文字を発見したら100と置き換えてくれ。
という意味になります。
そしてfor文の中で使っています。FROMの部分が10に、
TOの部分が100に置き換わります。
この方法だと#defineの定義部分の数値だけ書き換えればOKとなり、
記号定数を使わないプログラム例その2と比べて修正量が減り、大変便利です。
今は修正箇所が4つだけなので、大した事がないと思われるかもしれませんが、
大規模なプログラムとなると修正量が半端ではなく、
記号定数の使用は必須となります。
ちなみにdefineはデファインと読みます。
また、記号定数に使う文字は、一般的に大文字を使う事が多いです。