プリプロセッサの1つ マクロ をご紹介いたします

ソーラー 「さあ、プリプロセッサの説明をしてみようじゃないか」


アレサ「はいっ


プリプロセッサとは


#include <stdio.h>のような


#をもちいて他の命令文よりも 


先によみこまれる処理のことをあらわしています。


例えば


#include <stdio.h>をプログラムの先頭に記述することにより


ヘッダファイル<stdio.h>がよみこまれ


printf関数やscanf関数

fprintf関数やfscanf関数

fwrite関数やfread関数

など


が使用できるようになるのでした。」


ソーラー「他にもプリプロセッサとは 


プログラムを読み込んで


作動することができる機械という意味もあります。」


アレサ「C言語内でつかわれるときとは


同じプリプロセッサでも意味が大分違うのですの😊


C言語内で


#をもちいて他の命令文よりも 先によみこまれる処理


=プリプロセッサ


には、代表的なものとしては


#include <stdio.h>であらわされるように


#include を用いてヘッダファイルを読み込み


ヘッダファイルの中に格納されているプログラムを使用可能にする


というものがあります。


さらに

プリプロセッサには


マクロ


条件付きコンパイル


などがありますが


まず、


マクロからみていきましょうね、


ソーラーさん」


ソーラー「マックスの大好きなマグロのことなんだね。」


アレサ「お魚のマグロのことではありませんの」


ソーラー「よしきた 頼むよ~アレサ」


アレサ 「マクロとは


ringo と記述したらappleを記述したとみなすように


○○と記述したら☆☆を記述したとみなすような

 

処理をあらわしています。


具体例を示しながら見ていくと


  #define ringo appleとマクロの定義を記述することにより


プログラム内の


ringoはappleとみなされます。


#define ringo appleをもちいたプログラムを構成すると次のようになります。


#include <stdio.h>

#define ringo apple

/*ここで


ringoと記述されたらappleとみなされるよう


マクロの定義がおこなわれています*/


int main(void){

int ringo=100;

printf("%d\n",apple);

return 0;

}


コンパイル結果

100


アレサ「このプログラムでは


ringoと記述すれば appleを記述したとみなされるので


int ringo=100;

int apple=100;

と等しくなり


コンパイル結果は

100となります。


ソーラー

「ringoと記述すればappleと記述したことみなされるので


#include <stdio.h>

#define ringo apple


int main(void){

int ringo=100;

printf("%d\n",ringo);

return 0;

}


と記述しても

コンパイル結果は

100


になるんだよね。」


アレサ「はい ソーラーさんのこのプログラムをみると


int ringo=100;

と ringoの変数宣言

がおこなわれて

変数ringoが生成され、初期化がおこなわれたように


みえますが、

🌊🌊🌊

solarplexuss


(いまさらですが 初期化とは 数値や文字データの入れ物,


この場合、変数ringoに 値を代入することでした)

🌊🌊🌊


#define ringo appleにより


ringoと記述すればappleと記述したとみなされるので


実際には


ringoという変数は存在せず


コンピュータにとっては


appleという変数だけが存在することになります。」


ソーラー「まくろって 簡単じゃないか😊」


アレサ「はいっ とっても簡単ですの」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます