C言語のきほん「関数形式マクロ」

スポンサーリンク
C言語

先に本ブログでご紹介したマクロは、特定の文字列を別の文字列に置き換えるものであった。

今回は、「関数形式マクロ」をご紹介しよう。

次のように使用する。

#define MAX(x,y) (x > y ? x : y)

このように関数マクロを書いておくと、プログラムコードの中にある

MAX(x,y)

という記述が、

(x > y ? x : y)

に置き換えられる。

それでは、関数形式マクロを使用したプログラムをご紹介しよう。

なお、本プログラムは、Windows 11 Home(23H2)上で、 
 Visual Studio Code(1.91.1)を使用して作成し、gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0でコンパイルしている。

//関数形式マクロを使用したプログラム

#include <stdio.h>

#define MAX(x,y) (x > y ? x : y)

int main(void)
{
    int a = 7;
    int b = 10;

    printf("%d\n",MAX(a,b));

    double c = 5.6;
    double d = 1.1;

    printf("%.1f\n",MAX(c,d));

    return 0;

}

実行結果

10
5.6

関数形式マクロを用いると、短いプログラムコードにできるという利点がある。

参考)「C言語 新版 ゼロからはじめるプログラミング」 三谷 純 (著) 翔泳社

コメント

タイトルとURLをコピーしました