Share via


system_header pragma

Behandeln Sie den Rest der Datei als extern für Diagnose Berichte.

Syntax

#pragma system_header

Hinweise

Der system_headerpragma Compiler weist den Compiler an, Diagnose auf der ebene anzuzeigen, die durch die /external:Wn Option für den Rest der aktuellen Quelldatei angegeben ist. Weitere Informationen zum Angeben externer Dateien und der externen Warnstufe für den Compiler finden Sie unter /external.

Dies system_headerpragma gilt nicht über das Ende der aktuellen Quelldatei. Anders ausgedrückt: Sie gilt nicht für Dateien, die diese Datei enthalten. Dies system_headerpragma gilt auch, wenn keine anderen Dateien als extern für den Compiler angegeben werden. Wenn jedoch keine /external:Wn Optionsstufe angegeben ist, stellt der Compiler möglicherweise eine Diagnose aus und verwendet dieselbe Warnstufe , die sie auf nicht externe Dateien anwendet. Andere pragma Direktiven, die sich auf das Warnungsverhalten auswirken, gelten nach einem system_headerpragma. Die Wirkung von #pragma system_header ist ähnlich wie die warning pragma:

// If n represents the warning level specified by /external:Wn,
// #pragma system_header is roughly equivalent to:
#pragma warning( push, n )

// . . .

// At the end of the file:
#pragma warning( pop )

Das system_headerpragma ist ab Visual Studio 2019, Version 16.10, verfügbar.

Beispiel

In diesem Beispielheader wird gezeigt, wie der Inhalt einer Datei als extern markiert wird:

// library.h
// Use /external:Wn to set the compiler diagnostics level for this file's contents

#pragma once
#ifndef _LIBRARY_H // include guard for 3rd party interop
#define _LIBRARY_H
#pragma system_header
// The compiler applies the /external:Wn diagnostic level from here to the end of this file.

// . . .

// You can still override the external diagnostic level for warnings locally:
#pragma warning( push )
#pragma warning( error : 4164 )

// . . .

#pragma warning(pop)

// . . .

#endif

Siehe auch

/external
warning pragma
/Wn (Compilerwarnstufe)
Pragma-Direktiven und die __pragma und _Pragma Schlüsselwort (keyword)