<C言語>定数とマクロ
今回の記事でわかること
- 定数の使い方が分かる
- マクロの使い方が分かる
- 定数とマクロの違いが理解できる
定数とは
プログラムの中で値が変わらないものを定数と呼びます
例えば、数学でいう「円周率π」のように、計算中に値が変わらないものです
C言語では const キーワードを使って定数を定義します
#include <stdio.h>
int main(void) {
const double PI = 3.14;
printf("円周率は %f です\n", PI);
return 0;
}
/*出力結果
円周率は 3.140000 です
*/
このように、一度値を代入すると変更できなくなるので、意図せず値を書き換えるミスを防げます
定数を使うメリット
- 値が変わらないことを明示できる
- 読みやすいコードになる
- バグの発生を減らせる
マクロとは
C言語にはマクロという、コンパイル時に書き換えられる仕組みもあります
#defineを使って定義します
#include <stdio.h>
#define PI 3.14
#define CIRCLE_AREA(r) (PI * (r) * (r))
int main(void) {
double radius = 5;
printf("半径 %.1f の円の面積は %f\n", radius, CIRCLE_AREA(radius));
return 0;
}
/*出力結果
半径 5.0 の円の面積は 78.500000
*/
マクロは計算式も文字通り書き換えられるので、定数だけでなく簡単な関数のようにも使えます
マクロを使うメリット
- 定数だけでなく簡単な処理も置き換え可能
- コンパイル時に値や処理が展開されるので、実行速度に影響しにくい
定数とマクロの違い
種類 | 変更可否 | 型チェック | 利点 |
---|---|---|---|
const 定数 | 変更不可 | あり | 型安全、デバッグしやすい |
#define マクロ | 変更不可(置換時) | なし | 計算式も置換可能、簡単に使える |
最近は const を使う方が主流です。マクロは古いコードや簡単な置換用途で使われることが多いです