### ANSI_strict

Controls the use of non-standard language features.

##### Syntax

#pragma ANSI_strict on | off | reset

##### Targets

All platforms.

##### Remarks

If you enable the pragma ANSI_strict, the compiler generates an error if it encounters any of the following common ANSI extensions:

- C++-style comments

> a = b; // This is a C++-style comment

- Unnamed arguments in function definitions

> void f(int ) {} /* OK, if ANSI Strict is disabled */
> void f(int i) {} /* ALWAYS OK */

- A # token that does not appear before an argument in a macro definition

> #define add1(x) #x #1
> /* OK, if ANSI_strict is disabled,

> but probably not what you wanted:

> add1(abc) creates "abc"#1 */
> #define add2(x) #x "2"
> /* ALWAYS OK: add2(abc) creates "abc2" */

- An identifier after #endif

> #ifdef __CARBIDE__
> /* . . . */
> #endif __CARBIDE__ /* OK, if ANSI_strict is disabled */

> #ifdef __CARBIDE__
> /* . . . */
> #endif /*__CARBIDE__*/ /* ALWAYS OK */

This pragma corresponds to the ANSI Strict setting . To check this setting, use __option (ANSI_strict), described in Checking Settings. The default setting is off.