[mod.std.c] mod.std.c Digest V16#10

osd@hou2d.UUCP (Orlando Sotomayor-Diaz) (05/13/86)

From: Orlando Sotomayor-Diaz (The Moderator) <cbosgd!std-c>


mod.std.c Digest            Tue, 13 May 86       Volume 16 : Issue  10

Today's Topics:
 Differences from April 1985 to February 1986 Draft Standard, Part 9
----------------------------------------------------------------------

Date: Sun, 27 Apr 86 01:17:06 est
From: <ihnp4!utcsri!lsuc!msb%utcsri>
Subject: Differences from April 1985 to February 1986 Draft Standard, Part 9
To: cbosgd!std-c%utcsri

# {C.8.3 --> C.8.1} Conditional inclusion

       Preprocessing directives of the forms

                   # if       constant-expression new-line group[opt]
  *           {--> # elif     constant-expression new-line group[opt]}

       check whether the controlling constant  expression  evaluates  to
       non-zero.



# {C.8.3 --> C.8.1} Conditional inclusion

       Each directive's condition is checked in order.  If it  evaluates
  *    to false (0), the {program text that follows it --> group that it
  *    controls} is skipped ...  The first {section of program text  -->
       group}  whose  control  condition evaluates to true (non-zero) is
       processed.  If none of the  conditions  evaluates  to  true,  and
  *    there  is  a #else directive, the {program text between the #else
       and the #endif --> group controlled by the #else}  is  processed;
  *    lacking  a  #else  directive,  all  the {program text through -->
       groups until} the #endif are skipped.



# {C.8.1 --> C.8.2} Source file inclusion

N-->   The character sequence in the form of preprocessing directive

N-->               # include    <x-char-sequence> new-line

N-->   shall not include a > character.  The character sequence  in  the
N-->   form of preprocessing directive

N-->               # include    "x-char-sequence" new-line

N-->   shall not include a " character.



# {C.8.1 --> C.8.2} Source file inclusion

       The named source file is searched for  in  association  with  the
  *    {-->  original}  source  file  {containing the #include directive
  *    -->}.  {This implementation-defined capability presumes that oth-
       er  named  source  files  may  be associated in some way with the
       source file containing the text being read, typically by means of
       a file system with named files organized into "directories". -->}
  *    If this {--> implementation-defined} capability is not  supported
       ...



# {C.8.1 --> C.8.2} Source file inclusion

  *    Failure in processing a  #include  directive  is  {an  error  -->
       equivalent to a violation of a syntax rule}.



# {C.8.2 --> C.8.3} Macro replacement

  *    The arguments in the invocation are {-->  (possibly  empty)}  se-
       quences of tokens separated by comma tokens ...



# {C.8.2 --> C.8.3} Macro replacement

       Each occurrence in the definition of a formal  parameter  is  re-
  *    placed  by  the  corresponding argument from the invocation {-->,
       with all macros replaced in each argument}.



# {C.8.2 --> C.8.3} Macro replacement

       If a formal parameter in the definition follows a #  token,  both
       are  replaced  by the corresponding argument from the invocation,
       preceded and followed by a double-quote  character  to  create  a
  *    string  literal.  {--> Whether} white space between tokens in the
  *    argument {may be --> is retained in the string or} replaced by  a
  *    single  space  character  {--> is implementation-defined}.  White
       space preceding the first token or following the  last  token  is
  *    deleted.   {-->  A  backslash  character  is inserted before each
       double-quote character in the argument.}



# {C.8.2 --> C.8.3} Macro replacement

  *    A macro definition lasts ...  {--> until a  corresponding  #undef
       directive  is  encountered or (if none is encountered)} until the
       end of the source file ...



# {C.8.2 --> C.8.3} Macro replacement

       The replacement token sequence is reexamined for more macro names
  *    {-->, which are themselves replaced and rescanned}.



# {C.8.2 --> C.8.3} Macro replacement

       After all replacements have taken place, each instance in the de-
  *    finition  of a ## {token --> operator} is deleted, and the tokens
  *    preceding and following it are concatenated.  {--> If the  result
       is not a valid token, the behavior is undefined.}



# C.8.4 Line control

<--O   The predefined macro name __LINE__ has  the  value  of  the  line
<--O   number  of  the  current  source  line (a decimal constant).  The
<--O   predefined macro name __FILE__ has the value of the presumed name
<--O   of the source file (a string literal).



# {--> C.8.7 Predefined macro names}

N-->   The following macro names shall be defined by the  implementation
N-->   prior to the beginning of translation:

N-->   __LINE__    The line number of the current source line (a decimal
N-->               constant).

N-->   __FILE__    The presumed  name  of  the  source  file  (a  string
N-->               literal).

N-->   __DATE__    The date of translation  of  the  source  file  as  a
N-->               string  literal  of the form "Mmm dd yyyy", where the
N-->               names of the months are the same as  those  generated
N-->               by the asctime function.

N-->   __TIME__    The time of translation  of  the  source  file  as  a
N-->               string literal of the form "hh:mm:ss".

N-->   No other macro names shall be predefined.

N-->   Forward references: the asctime function (#D.12.3.1).



# {--> C.9 FUTURE DIRECTIONS}



# {--> C.9.1 Character escape sequences}

N-->   Lower-case letters as escape sequences are  reserved  for  future
N-->   standardization.  Other characters may be used in extensions.



# {--> C.9.2 Function declarations}

N-->   The use of function  declarations  with  empty  parentheses  (not
N-->   prototype-format parameter-type declarations) is deprecated.



# {--> C.9.3 Function definitions}

N-->   The use of function definitions with separate parameter  identif-
N-->   ier  and  declaration  lists (not prototype-format parameter type
N-->   and identifier declarations) is deprecated.

------------------------------

End of mod.std.c Digest - Tue, 13 May 86 09:09:55 EDT
******************************
USENET -> posting only through cbosgd!std-c.
ARPA -> ... through cbosgd!std-c@BERKELEY.ARPA (NOT to INFO-C)
In all cases, you may also reply to the author(s) above.