The #ident
directive takes one argument, a string constant. On
some systems, that string constant is copied into a special segment of
the object file. On other systems, the directive is ignored.
This directive is not part of the C standard, but it is not an official GNU extension either. We believe it came from System V.
The #sccs
directive is recognized, because it appears in the
header files of some systems. It is a very old, obscure, extension
which we did not invent, and we have been unable to find any
documentation of what it should do, so GCC simply ignores it.
The null directive consists of a #
followed by a newline,
with only whitespace (including comments) in between. A null directive
is understood as a preprocessing directive but has no effect on the
preprocessor output. The primary significance of the existence of the
null directive is that an input line consisting of just a #
will
produce no output, rather than a line of output containing just a
#
. Supposedly some old C programs contain such lines.