Additional Topics > External Development Guide > IDLInternals - Miscellaneous > Constants

# Constants

Preprocessor constants defined in the `idl_export.h` file should be used in preference to hardwired values. To accommodate the needs of various operating systems, some of these constants have different values in different versions of IDL. Those constants that are not discussed elsewhere are listed below.

## IDL_TRUE

A more readable alternative to the constant 1.

## IDL_FALSE

A more readable alternative to the constant 0.

## IDL_REGISTER

Some C compilers are good at allocating registers, and using the C register declaration can cause efficiency to suffer. On the other hand, some C compilers won’t put any variables into registers unless register definitions are used. Our solution is to use IDL_REGISTER to declare variables we feel should be placed into registers. For machines that we feel have a good register allocation scheme, we define IDL_REGISTER to be a null macro. For lesser compilers, it is defined to be the C register keyword.

## IDL_MAX_ARRAY_DIM

The maximum number of dimensions an array can have.

## IDL_MAXIDLEN

The maximum number of characters IDL allows in an identifier (variable names, program names, and so on).

## IDL_MAXPATH

The maximum number of characters allowed in a filepath.