Bagikan melalui


system_header pragma

Perlakukan file lainnya sebagai eksternal untuk laporan diagnostik.

Sintaks

#pragma system_header

Keterangan

system_headerpragma memberi tahu pengkompilasi untuk menampilkan diagnostik pada tingkat yang ditentukan oleh /external:Wn opsi untuk sisa file sumber saat ini. Untuk informasi selengkapnya tentang cara menentukan file eksternal dan tingkat peringatan eksternal ke pengkompilasi, lihat /external.

system_headerpragma tidak berlaku melewati akhir file sumber saat ini. Dengan kata lain, ini tidak berlaku untuk file yang menyertakan file ini. Berlaku system_headerpragma bahkan jika tidak ada file lain yang ditentukan sebagai eksternal untuk pengkompilasi. Namun, jika tidak ada /external:Wn tingkat opsi yang ditentukan, pengkompilasi dapat mengeluarkan diagnostik dan menggunakan tingkat peringatan yang sama yang berlaku untuk file non-eksternal. Arahan lain pragma yang memengaruhi perilaku peringatan masih berlaku setelah system_headerpragma. Efeknya #pragma system_header mirip warning pragmadengan :

// 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 )

system_headerpragma tersedia mulai dari Visual Studio 2019 versi 16.10.

Contoh

Header sampel ini memperlihatkan cara menandai konten file sebagai eksternal:

// 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

Lihat juga

/external
warning pragma
/Wn (Tingkat peringatan kompilator)
Pragmadirektif dan __pragma kata kunci dan _Pragma