upozornění

 

Nejnovější dokumentaci k sadě Visual Studio 2017 najdete tady.

Umožňuje selektivní úpravy chování zpráv upozornění kompilátoru.

  
      #pragma warning(   
      warning-specifier  
       :   
      warning-number-list [; warning-specifier : warning-number-list...] )  
#pragma warning( push[ ,n ] )  
#pragma warning( pop )  

Jsou k dispozici následující parametry specifikátorů upozornění.

specifikátor-upozorněníVýznam
1, 2, 3, 4Použije danou úroveň pro zadaná upozornění. To také zapne zadané upozornění, které je ve výchozím nastavení vypnuto.
defaultResetuje chování upozornění na jeho výchozí hodnotu. To také zapne zadané upozornění, které je ve výchozím nastavení vypnuto. Upozornění bude vygenerováno s výchozí, zdokumentovanou, úrovní.

Další informace naleznete v tématu Upozornění kompilátoru, která jsou ve výchozím natavení vypnuta..
disableNevyvolá zadané zprávy upozornění.
errorOznámí zadaná upozornění jako chyby.
onceZobrazí zadané zprávy pouze jednou.
suppressVloží aktuální stav direktivy pragma do zásobníku, zakáže zadané upozornění pro další řádek a poté vyjme ze zásobníku upozornění, takže je stav direktivy pragma obnoven.

Následující příkaz kódu ukazuje, že parametr warning-number-list může obsahovat více čísel upozornění a že lze zadat více parametrů warning-specifier ve stejné direktivě pragma.

#pragma warning( disable : 4507 34; once : 4385; error : 164 )  

To je funkčně ekvivalentní následujícímu kódu.

// Disable warning messages 4507 and 4034.  
#pragma warning( disable : 4507 34 )  
  
// Issue warning 4385 only once.  
#pragma warning( once : 4385 )  
  
// Report warning 4164 as an error.  
#pragma warning( error : 164 )  

Kompilátor přidá 4000 libovolnému číslu upozornění mezi 0 a 999.

Pro čísla upozornění v rozsahu 4700-4999, což jsou ta, která jsou přidružena ke generování kódu, bude stav varování platný v případě, že kompilátor narazí na otevírací složenou závorku funkce pro zbytek této funkce. Použití direktivy pragma warning ve funkci pro změnu stavu upozornění, které má číslo větší než 4699 se projeví až po ukončení funkce. Následující příklad ukazuje správné umístění direktivy pragma warning, chcete-li zakázat zprávy upozornění generování kódu a poté jej obnovit.

// pragma_warning.cpp  
// compile with: /W1  
#pragma warning(disable:4700)  
void Test() {  
   int x;  
   int y = x;   // no C4700 here  
   #pragma warning(default:4700)   // C4700 enabled after Test ends  
}  
  
int main() {  
   int x;  
   int y = x;   // C4700  
}  

Všimněte si, že v rámci těla funkce, bude poslední nastavení direktivy pragma warning platné pro celou funkci.

Direktiva pragma warning také podporuje následující syntaxi.

#pragma warning( push [ ,``n ] )

#pragma warning( pop )

Kde n představuje úroveň upozornění (1 až 4).

Direktiva pragma warning( push ) obsahuje aktuální stav upozornění každého upozornění. Direktiva pragma warning( push, n``) uloží aktuální stav každého upozornění a nastaví globální úroveň upozornění na n.

Direktiva pragma warning( pop ) vyjme poslední stav upozornění vložený do zásobníku. Všechny změny provedené ve stavu upozornění mezi operacemi push a pop jsou vráceny. Vezměme si jako příklad:

#pragma warning( push )  
#pragma warning( disable : 4705 )  
#pragma warning( disable : 4706 )  
#pragma warning( disable : 4707 )  
// Some code  
#pragma warning( pop )   

Na konci tohoto kódu operace pop obnoví stav každého upozornění (zahrnuje 4707, 4705 a 4706) na stav, který byl na začátku kódu.

Při vytvoření souborů hlaviček lze pomocí operací push a pop zajistit, že změny stavu upozornění provedené uživatelem této hlavičce nebrání ve správné kompilaci. Operaci push použijte na začátku hlavičky a operaci pop na konci. Například pokud máte hlavičku, která není čistě zkompilována na úrovni upozornění 4, následující kód by měl změnit úroveň upozornění na 3 a poté obnovit původní úroveň upozornění na konci hlavičky.

#pragma warning( push, 3 )  
// Declarations/definitions  
#pragma warning( pop )   

Další informace o možnostech kompilátoru, které vám pomohou potlačit upozornění naleznete v tématech Možnost kompilátoru /FI a Možnost kompilátoru /w.

Direktivy Pragma a klíčové slovo __Pragma

Zobrazit: