月ノ書

<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 を使う方が主流です。マクロは古いコードや簡単な置換用途で使われることが多いです

学習進捗

0
Would love your thoughts, please comment.x