mod.std.c Digest V16#10
Orlando Sotomayor-Diaz
osd at hou2d.UUCP
Tue May 13 23:10:39 AEST 1986
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 at BERKELEY.ARPA (NOT to INFO-C)
In all cases, you may also reply to the author(s) above.
More information about the Mod.std.c
mailing list