カフェブロトップへ
注目キーワード  コンビネゾン スパンコールカーデ / 【今週のプレゼント】しっとり!ハンドクリーム

プログラマーの独り言

コンピュータ・ソフトウェアのプログラミングに関して調査したことや思ったことを綴ります。

<< 2012年2月 >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29
最新記事
最新コメント
最新トラックバック
リンク集
defineとは
C言語のdefineについて調べてみた。
結果をまとめると以下のとおり。

defineとは、プリプロセッサ指示のひとつで文字列を別の文字列に置き換えることができるもの。この機能はマクロ置換と呼ばれる。

使用例:
#define MAX 100

この定義以降のプログラムでは、コンパイル時にプリプロセッサによりMAXが100と変換されてからコンパイルされる。
このようなマクロ置換をオブジェクト形式マクロと呼ぶ。

プリプロセッサとは、コンパイル前の準備的な処理を行うソフトウェアのことである。

マクロ置換は引数を取ることもできる。

使用例:
#define RND(x) (rand()%(x+1))

このケースではRND(9)は0〜9までの乱数となる。
このようなマクロ置換を関数形式マクロと呼ぶ。

関数形式マクロは、引数の型が固定されない、関数呼び出し時のオーバヘッドがない等、関数よりも便利な面がある。
反面、マクロ使用時のパラメータでインクリメントやデクリメントを行うと、それが複数回行われるケースがある等、不具合を発生させる危険もある。そのため、関数形式マクロの使用には注意が必要である。

参考ページ:C言語のdefineについて
2010年3月17日(水) 21:02 [ C言語 ]
この記事のURL / /


プロフィール
ユニオン
カテゴリアーカイブ
月別アーカイブ
日別アーカイブ
cafebloトップへ
ブログ管理画面へ