pragma once یه رهنمود-پیش پرداز (Preprocessor Directive) برای همگردان(کامپایلر) های C و ++C هست .
با اینکه در بخش استاندارد زبان ++C/C نیست , ولی خیلی بکاربرده میشه .
اگر خوب به بیشتر فایل های سرآمد نگاه کنی, میفهمی که کموبیش همشون دارای پاسگان هستند.
برای نمونه پاسگان های فایل foo.h اینجوری نوشته میشه :
#ifndef FOO_H
#define FOO_H
...
...
...
#endif //FOO_H
گذاشتن پاسگان برای اینه که اگر این فایل از فایل دیگه ای با include# دربرگرفته شد , تنها یک بار این کار روش انجام بشه .
اگر ما فایل a.h و b.h داشته باشیم و هر دوی اونها فایل c.h رو با include# دربربگیرن . و ما فایل های a.h و b.h رو در برنامه بکاربگیریم ایرادی که درست میشه اینه که چون هم فایل a.h و b.h فایل c.h رو دربرگرفتن , همه ی چیزهایی که تو فایل c.h تعریف شده دو باره در برنامه تعریف میشه و با خطای تعریف چندباره روبرو میشویم .
هدف اینکه ما پاسگان ها رو مینویسم برای جلوگیری از این ایراده.
pragma once جایگزین برای نوشتن پاسگان ها توی فایل های سرآمد هست . همین !