Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Traktuj pozostałą część pliku jako zewnętrzną dla raportów diagnostycznych.
Składnia
#pragma system_header
Uwagi
Polecenie system_headerpragma informuje kompilator o wyświetlaniu diagnostyki na poziomie określonym przez /external:Wn opcję pozostałej części bieżącego pliku źródłowego. Aby uzyskać więcej informacji na temat określania plików zewnętrznych i zewnętrznego poziomu ostrzeżenia do kompilatora, zobacz /external.
Element system_headerpragma nie ma zastosowania obok końca bieżącego pliku źródłowego. Innymi słowy, nie ma zastosowania do plików, które zawierają ten plik. Ma system_headerpragma zastosowanie nawet wtedy, gdy żadne inne pliki nie są określone jako zewnętrzne dla kompilatora. Jeśli jednak nie /external:Wn określono poziomu opcji, kompilator może wydać diagnostykę i używa tego samego poziomu ostrzeżenia, który ma zastosowanie do plików innych niż zewnętrzne. Inne pragma dyrektywy, które mają wpływ na zachowanie ostrzegawcze, nadal mają zastosowanie po .system_headerpragma Efekt #pragma system_header jest podobny do następującego: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 )
Element system_headerpragma jest dostępny od wersji 16.10 programu Visual Studio 2019.
Przykład
W tym przykładowym nagłówku pokazano, jak oznaczyć zawartość pliku jako zewnętrzny:
// 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
Zobacz też
/external
warning pragma
/Wn (Poziom ostrzeżenia kompilatora)
dyrektywy Pragma oraz słowa kluczowe __pragma i _Pragma