C言語を書いていると、大量のヘッダーファイルが必要となるので、多重読み込みの混乱を避けるためにインクルードガードが必要となります。
#pragma once
という標準化されていない方法もあるのですが、移植性のあるやり方としては#ifndef
~#define
~#endif
の流れとなっています。
もちろん特に問題なく使っていたのですが、あるときこんなヘッダーファイルを見つけてしまいました。
C
1/* define_only.h:自分が書いていたやり方 */ 2#ifndef DEFINE_ONLY_H_INCLUDED 3#define DEFINE_ONLY_H_INCLUDED 4 5/* ヘッダーの中身 */ 6 7#endif /* DEFINE_ONLY_H_INCLUDED */ 8 9/* define_1.h:新しく見かけたもの */ 10#ifndef DEFINE_1_H_INCLUDED 11#define DEFINE_1_H_INCLUDED 1 12 13/* ヘッダーの中身 */ 14 15#endif /* DEFINE_1_H_INCLUDED */
インクルードガードに使う記号定数に値を割り当てることで、何かしらのメリットがあるものなのでしょうか。ご存知でしたらお知らせいただければ幸いです。
(2016/05/17 9:48 追記)
見かけた場所というのが、Ruby処理系のヘッダーファイル内です。検索してもインクルードガード以外に使われていなさそうだし、ほぼ全ファイルで1が#define
されていました。
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/17 01:02
2016/05/17 11:01 編集