Share via


/Gs (Řízení volání kontroly zásobníku)

Řídí prahovou hodnotu pro sondy zásobníku.

Syntaxe

/Gs[size]

Argumenty

size
(Volitelné) Počet bajtů, které mohou místní proměnné zabírat před zahájením sondy zásobníku. /Gs Mezi a size.

Poznámky

Sonda zásobníku je posloupnost kódu, kterou kompilátor vloží na začátek volání funkce. Při inicializování sonda zásobníku dosáhne neškodně do paměti o množství místa potřebného k uložení místních proměnných funkce. Tato sonda způsobí, že operační systém bude v případě potřeby transparentně stránkovat ve více paměti zásobníku, než se spustí zbytek funkce.

Kompilátor ve výchozím nastavení generuje kód, který inicializuje sondu zásobníku, když funkce vyžaduje více než jednu stránku prostoru zásobníku. Toto výchozí nastavení odpovídá možnosti kompilátoru /Gs4096 pro platformy x86, x64, ARM a ARM64. Tato hodnota umožňuje aplikaci a správce paměti systému Windows dynamicky zvýšit množství paměti potvrzené do zásobníku programu za běhu.

Poznámka

Výchozí hodnota /Gs4096 umožňuje, aby se zásobník aplikací pro Windows v době běhu správně zvětšil. Doporučujeme, abyste výchozí hodnotu nezměnili, pokud přesně nevíte, proč ji musíte změnit.

Některé programy, například ovladače virtuálních zařízení, nevyžadují tento výchozí mechanismus pro růst zásobníku. V takových případech nejsou sondy zásobníku nezbytné a kompilátor můžete zastavit v jejich generování nastavením size na hodnotu, která je větší než jakákoli funkce vyžaduje pro místní úložiště proměnných.

/Gs0 inicializuje sondy zásobníku pro každé volání funkce, které vyžadují úložiště pro místní proměnné. Tato hodnota může mít negativní dopad na výkon.

Pokud pro cíle x64 zadáte možnost bez argumentu /Gssize , bude stejná jako /Gs0. size Pokud je argument 1 až 9, kompilátor vygeneruje upozornění D9014 a účinek je stejný jako určení /Gs0.

U cílů /Gs x86, ARM a ARM64 je možnost bez argumentu size stejná jako /Gs4096. size Pokud je argument 1 až 9, kompilátor vygeneruje upozornění D9014 a účinek je stejný jako určení /Gs4096.

Pro všechny cíle argument size mezi 10 a 2147483647 nastaví prahovou hodnotu na zadanou hodnotu. A size 2147483648 nebo vyšší způsobí závažnou chybu C1049.

Sondy zásobníku můžete zapnout nebo vypnout pomocí direktivy check_stack . /Gs a direktiva check_stack pragma nemají žádný vliv na standardní rutiny knihovny jazyka C; ovlivňují pouze funkce, které kompilujete.

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. Zadejte možnost kompilátoru /Gs a volitelnou velikost v dalších možnostech. Změny uložíte kliknutím na OK nebo Použít .

Programové nastavení tohoto parametru kompilátoru

Viz také

Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC