c++c-preprocessorheader-filespragma

What is #pragma once used for?


I have found the following code when refactoring:

#ifndef TARGET_OS_LINUX
#pragma once
#endif

Can anyone help me understand #pragma once?

What, when, where, and why is it used? Do you have an example?


Solution

  • #pragma is just the prefix for a compiler-specific feature.

    In this case, #pragma once means that this header file will only ever be included once in a specific destination file. It removes the need for include guards.