The _Pragma preprocessing operator

The unary operator _Pragma, allows a preprocessor macro to be contained in a pragma directive.

Read syntax diagramSkip visual syntax diagram
_Pragma operator syntax

>>-_Pragma--(--"--string_literal--"--)-------------------------><

The string_literal can be prefixed with L, making it a wide-string literal.
The string literal is destringized and tokenized. The resulting sequence of tokens is processed as if it appeared in a pragma directive. For example, the following two statements are equivalent:
_Pragma ( "pack(full)" )
#pragma pack(full)

C++11 In C++11, the _Pragma operator feature of the C99 preprocessor is adopted to provide a common preprocessor interface for C and C++ compilers. The _Pragma operator is an alternative method of specifying the #pragma directive. For more information, see C99 preprocessor features adopted in C++11 (C++11).