まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

C言語 マクロ機能define、定数const、列挙enum

データに名前を付ける #define擬似命令

#define 名前 データ

命名規則

  • 大文字のアルファベット推奨
  • プログラムの先頭に記述
  • 配列の要素数、関数の引数に出来る
  • 指定した名前のところにデータを置換える。
#define ONE 1
#define TEAM "moon"

int main(void)
{
    printf("数:%d = チーム名:%s\n", ONE,TEAM );
}

表示イメージ

数:1 = チーム名:moon

#define擬似命令 特殊操作

関数に名前を付ける。

#define PRINT printf("おはよう")
int main(void)
{
    PRINT;
}

表示イメージ

おはよう

マクロ作る

#define PRINT(A) printf("%d回分、おはよう\n",A)
int main(void)
{
    int a = 5, b = 10;
    PRINT(a);
    PRINT(b);
}

表示イメージ

5回分、おはよう
10回分、おはよう

不変定数 const

  • 宣言時の初期値を変更出来ない変数
  • 変更しようとするとエラーになる
  • 配列の要素数にできない
  • 関数の引数にできる
const int ONE = 1;

printf("数:%d\n", ONE);

表示イメージ

数:1

フラグ(列挙)定数 enum

※扱いは整数値のみ
※初期化:指定しなければ、先頭から0,1,2…となる

enum {
名前,
名前,
:
名前[,]
};

enum {
    apple,
    banana,
   peach,
};

数値指定で初期化

enum {
名前 = 数値,
名前 = 数値,
名前 = 数値
};

enum {
    apple,
    banana=3,
   peach=7,
};