/J (Default char Type Is unsigned)

Changes the default char type from signed char to unsigned char, and the char type is zero-extended when it is widened to an int type.

Syntax

/J

Remarks

If a char value is explicitly declared as signed, the /J option does not affect it, and the value is sign-extended when it is widened to an int type.

The /J option defines _CHAR_UNSIGNED, which is used with #ifndef in the LIMITS.h file to define the range of the default char type.

ANSI C and C++ do not require a specific implementation of the char type. This option is useful when you are working with character data that will eventually be translated into a language other than English.

Note

If you use this compiler option with ATL/MFC, an error might be generated. Although you could disable this error by defining _ATL_ALLOW_CHAR_UNSIGNED, this workaround is not supported and may not always work.

To set this compiler option in the Visual Studio development environment

  1. Open your project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.

  2. Select the Configuration Properties > C/C++ > Command Line property page.

  3. In Additional Options, enter the /J compiler option.

To set this compiler option programmatically

See also

MSVC Compiler Options
MSVC Compiler Command-Line Syntax
Set C++ compiler and build properties in Visual Studio