/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 /Gs
size
, 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
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
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 třída AdditionalOptions.
Viz také
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC