HELPLIB.HLB  —  RDML72  Preprocessor  /C
    Specifies that the input file is a VAX C or DEC C source file.
    If the /C qualifier is used on the command line, the RDML
    preprocessor will assume a file extension of ".RC" unless you
    specify otherwise in the file specification.

    Format:

          /C

    Example:

          $ RDML/C EMPUP

1  –  More

    The following restrictions affect the use of C host variables:

    o  Host variables in C of the form *host_variable that appear directly
       after a host variable in an RSE are not detected correctly. For
       instance, *year_ptr is interpreted incorrectly as part of the host
       variable emp_id in the following example:

       FOR D IN DEGREES WITH D.EMPLOYEE_ID = emp_id
          *year_ptr = D.YEAR_GIVEN;
       END_FOR;

       The workaround for this restriction is to use braces around the host
       language statements, or parentheses around the WITH clause.  For
       example, either of the following RSEs will preprocess correctly:

       FOR D IN DEGREES WITH D.EMPLOYEE_ID = emp_id
          {
          *year_ptr = D.YEAR_GIVEN;
          }
       END_FOR;

       FOR D IN DEGREES WITH (D.EMPLOYEE_ID = emp_id)
          *year_ptr = D.YEAR_GIVEN;
       END_FOR;

    o  Although host variables with parentheses are permitted in non-RDML
       statements, they cannot be used as host variables in RDML statements.
       For example, the following syntax is not permitted:

       FOR E IN EMPLOYEES
          WITH E.LAST_NAME = (name)[offset].element
            .
            .
            .
       END_FOR;

       However, the following is permitted:

       FOR E IN EMPLOYEES
         WITH E.LAST_NAME = name[offset].element
           .
           .
           .
       END_FOR;

    The C string continuation character (a backslash, \) in string
    constants followed immediately by a new line is not recognized by
    RDML.  Do not use this method of continuation with this version of
    RDML.  RDML generates an error if it finds a string constant that does
    not begin and end on the same line within quotation marks.

    For example, the following C lines cause a syntax error:

    printf ("abcdefg\
    hijklmnopqrstuvwxyz");
Close Help