# names

Specifies how source code identifiers and external names are interpreted.

## Syntax

Linux: | -names keyword

macOS: | -names keyword

Windows: | /names:keyword

## Arguments

keyword | Specifies how to interpret the identifiers and external names in source code. Possible values are:
lowercase | Causes the compiler to ignore case differences in identifiers and to convert external names to lowercase.
uppercase | Causes the compiler to ignore case differences in identifiers and to convert external names to uppercase.
as_is | Causes the compiler to distinguish case differences in identifiers and to preserve the case of external names.

## Default

lowercase | This is the default on Linux* and macOS systems. The compiler ignores case differences in identifiers and converts external names to lowercase.
uppercase | This is the default on Windows* systems. The compiler ignores case differences in identifiers and converts external names to uppercase.

## Description

This option specifies how source code identifiers and external names are interpreted. It can be useful in mixed-language programming.

This naming convention applies whether names are being defined or referenced.

You can use the ALIAS directive to specify an alternate external name to be used when referring to external subprograms.

### CAUTION

On Windows systems, if you specify option /iface:cref, it overrides the default for external names and causes them to be lowercase. It is as if you specified "!dir$ attributes c, reference" for the external name.

If you specify option /iface:cref and want external names to be uppercase, you must explicitly specify option /names:uppercase.

## IDE Equivalent

Visual Studio: External Procedures > Name Case Interpretation

## Alternate Options

None

Parent topic: Language Options

## See Also

iface compiler option
ALIAS Directive