基本

C言語のプリプロセッサー「#define」

投稿日:

プリプロセッサー「#define」

プリプロセッサーはソースファイルをコンパイルする前に
処理をしてくれくれるプログラムです。
C言語ではプリプロセッサーに渡す命令(コマンド)は前に
「#」を付けて渡します。
(プリプロセッサーディレクティブと呼んだりします。)

define

その中の1つ今回は「define」です。

この「define」は簡単に言うと「define」で定義されたキーワードを
ソースファイル内に見つけると、そのキーワードを定義された内容に
書き変えてくれるイメージです。
(実際のソースは書き変わりませんが、コンパイラにわたるソースは
 イメージとして書き変わっています。)

例えば

と宣言しておけばソースファイルないの「FILE_NAME」という部分は
すべて「test.txt」に置き換えてくれます。

のように書くとソースファイル内の「FILE_NAME」が「test.txt」に
書き変わり

と書いたのと同じことになります。

これで便利なのは「FILE_NAME」が「"TEST.txt"」に変更に
なったとしても「#define」の宣言を「"TEST.txt"」に変更するだけで
ソース内のすべての「FILE_NAME」を「"TEST.txt"」に変更したのと
同じ意味になります。

実際のプログラムは同じ値を何か所にも渡って使用することは
当たり前にあるので、「#define」を利用することで、
スペルミスや、修正漏れを防いで、ソースのメンテナンス性を
上げるようにします。

当サイトのおすすめ記事

レンタルサーバー 1

当サイトは約5年間、さくらのレンタルサーバで運用させて頂きました。 何かトラブルがあったわけではないのですが、WordPressの表示速度を速くしたくてSSD搭載のレンタルサーバーで運用してみることに ...

プログラミング 2

SQLでIFを使わずに条件分岐する SQLでIFを書けばWHERE句の内容を変えて検索できますが、条件ごとに同じようなSQLを 複数回書くのは面倒なので、1行で分岐できないかと言う事でSQLを作って見 ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

SQLServerでテーブル型を戻り値とする関数を作る SQLServerではINT型やVARCHAR型などを返す関数と同様に ユーザー定義テーブル型を戻り値とする関数を作成できます。 テーブル型を戻 ...

5

アフィリエイトで即効成果を出す アフィリエイトで成果を出す、なかなか難しいですよね。 サイトをいくつも立ち上げてすでにコツをつかんでいる人なら チョチョイっとやっていけるんでしょうけど。 でも実際はこ ...

-基本
-,

Copyright© ソフトウェア開発日記 , 2017 AllRights Reserved.