---
description: "Learn more about the check_stack pragma directive in Microsoft C/C++"
title: "check_stack pragma"
ms.date: 01/22/2021
f1_keywords: ["vc-pragma.check_stack", "check_stack_CPP"]
helpviewer_keywords: ["check_stack pragma", "pragma, check_stack", "pragma, check_stack usage table"]
no-loc: ["pragma"]
---
# `check_stack` pragma
Instructs the compiler to turn off stack probes if **`off`** (or **`-`**) is specified, or to turn on stack probes if **`on`** (or **`+`**) is specified.
## Syntax
> **`#pragma check_stack(`** [{ **`on`** | **`off`** }] **`)`**\
> **`#pragma check_stack`** { **`+`** | **`-`** }
## Remarks
This pragma takes effect at the first function defined after the pragma is seen. Stack probes are neither a part of macros nor of functions that are generated inline.
If you don't give an argument for the **`check_stack`** pragma, stack checking reverts to the behavior specified on the command line. For more information, see [Compiler options](../build/reference/compiler-options.md). The interaction of the `#pragma check_stack` and the [`/Gs`](../build/reference/gs-control-stack-checking-calls.md) option is summarized in the following table.
### Using the check_stack Pragma
| Syntax | Compiled with
`/Gs` option? | Action |
|--|--|--|
| `#pragma check_stack( )` or
`#pragma check_stack` | Yes | Turns off stack checking for functions that follow |
| `#pragma check_stack( )` or
`#pragma check_stack` | No | Turns on stack checking for functions that follow |
| `#pragma check_stack(on)`
or `#pragma check_stack +` | Yes or No | Turns on stack checking for functions that follow |
| `#pragma check_stack(off)`
or `#pragma check_stack -` | Yes or No | Turns off stack checking for functions that follow |
## See also
[Pragma directives and the `__pragma` and `_Pragma` keywords](./pragma-directives-and-the-pragma-keyword.md)