Copyright Digital Equipment Corp. All rights reserved.

Description

   The _tolower macro is equivalent to the tolower function except
   that its argument must be an uppercase letter (not lowercase, not
   EOF).

   As of OpenVMS Version 8.3 and to comply with the C99 ANSI
   standard and X/Open Specification, the _tolower macro by default
   does not evaluate its parameter more than once. It simply calls
   the tolower function. This avoids side effects (such as i++
   or function calls) where the user can tell how many times an
   expression is evaluated.

   To keep the older, optimized _tolower macro behavior, compile
   with /DEFINE=_FAST_TOUPPER. Then, as in previous releases, _
   tolower optimizes the call to avoid the overhead of a runtime
   call. The parameters are checked to determine how to calculate
   the result, thereby creating unwanted side effects. Therefore,
   when compiling with /DEFINE=_FAST_TOUPPER, do not use the _
   tolower macro with arguments that contain side-effect operations.
   For instance, the following example will not return the expected
   result:

   d = _tolower (C++);