C言語やC++において、プログラムが多くなってくると関数などを機能べつに分けたりします。その時に、#include してプログラムに取り込みますが、その時に追加する必要があるものがあります。
重複して関数が定義されることを防ぐ
#ifndef, #define, #endifを用いる方法
#ifndef DATE_H #define DATE_H struct Date { int month, day, year; }; #endif
このようにすれば、何回このファイルがincludeされても、最初の一回しかincludeされなくなります。なぜなら、最初はDATE_Hというマクロ定数が定義されていないために、2行目以下を実行します。2行目にDATE_Hというマクロ定数が定義されているために、2行目以下を実行されないようになります。
pragmaを用いる方法
#pragma once struct Date { int month, day, year; };
pragma(プラグマ)とは、コンパイラに特定の情報を渡すために使用するコンパイラ指令になります。プラグマを使用することでコンパイル内容を詳細に制御できます。