VMS Help  —  CRTL  _toupper, Description
    The _toupper macro is equivalent to the toupper function except
    that its argument must be a lowercase letter (not uppercase, not
    EOF).

    As of OpenVMS Version 8.3 and to comply with the C99 ANSI
    standard and X/Open Specification, the _toupper macro by default
    does not evaluate parameters more than once. It simply calls
    the toupper 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 _toupper macro behavior, compile
    with /DEFINE=_FAST_TOUPPER. Then, as in previous releases, _
    toupper 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. So when
    compiling with /DEFINE=_FAST_TOUPPER, do not use the _toupper
    macro with arguments that contain side-effect operations. For
    instance, the following example will not return the expected
    result:

    d = _toupper (c++);
Close Help