ASCII | NOASCII

Category

Portability and migration

Pragma equivalent

None.

Purpose

Provides ASCII/NLS support.

When ASCII is in effect, the compiler performs the following:
  • Uses XPLink linkage unless explicitly overwritten by the NOXPLINK option. Note that the ASCII runtime functions require XPLINK. The system headers check the __XPLINK__ macro (which is predefined when the XPLINK option is turned on). The prototypes for the ASCII runtime functions will not be exposed under NOXPLINK. Specifying the NOXPLINK option explicitly will prevent you from using the ASCII runtime functions. ASCII and NOXPLINK are accepted if the source does not contain the main() function, otherwise, an error is emitted.
  • Uses ISO8859-1 for its default code page rather than IBM-1047 for character constants and string literals.
  • Sets a flag in the program control block to indicate that the compile unit is ASCII.

When NOASCII is in effect, the compiler uses the IBM-1047 code page for character constants and string literals, unless the code page is affected by other related options; for example, the CONVLIT, LOCALE, or DEF(__STRING_CODESET__) compiler options.

Syntax

Read syntax diagramSkip visual syntax diagram
   .-NOASCII-.   
>>-+-ASCII---+-------------------------------------------------><

Defaults

NOASCII

Usage

Use the ASCII option and the ASCII version of the runtime library if your application must process ASCII data natively at execution time.

Note: You can use EBCDIC instead of NOASCII. The two names are synonymous. There is no negative form for EBCDIC, which means that NOEBCDIC is not supported. Since EBCDIC is the default, there is usually no need to specify it. If you must specify it, use EBCDIC instead of NOASCII as the former is self-documenting.

Predefined macros

__CHARSET_LIB is defined to 1 when the ASCII compiler option is in effect and it is defined to a value of 0 when the NOASCII compiler option is in effect.

Related information

For more information on the XPLINK compiler option, see XPLINK | NOXPLINK.