C言語を極めたいがための備忘録。GCCの柔軟さに頼り続けた結果こうなった。
見つかりor思いつき次第書いていく。
#ifndef _HEADER_H_
ヘッダファイルでよく見るこれ。
#ifndef _HEADER_H_
#define _HEADER_H_
int a=1;
#endif
結論から言うとこれは二重インクルードを防ぐためのフラグ。このifndefは多分If not definedの略。日本語訳したら「もし定義されていないなら」となるね。
だから#ifndef _HEADER_H_
を読み解くと、「もしマクロ_HEADER_H_
が定義されていないなら」になる。
で、#ifndef
から#endif
までが一つの塊になっている。
ここからがこの括りの内容。
#define _HEADER_H_
は言うまでもないでしょう。マクロ_HEADER_H_
を定義している。これのおかげで、ほかのことろで同じヘッダがインクルードされてもインクルードされなくなる。
でint a=1を宣言してるってわけ。