Ja, så är det ju, man använder uttrycket "ANSI-C" för att skilja något från
nyare standards. Här är ett exempel från en C kompilator. Stöder i och för
sig inte C11/C18, men gör ändå skillnad på ANSI-C och de senare C88 och
C99, C94 namns också plus lite annat...:
Kod: Markera allt
$ help cc /standard
CC
/STANDARD
/STANDARD=(option)
/STANDARD=RELAXED (equivalent to /NOSTANDARD) (D)
/NOSTANDARD (D)
Defines the compilation mode. You can select the following
options:
ANSI89 Places the compiler in strict ANSI C Standard 89
(C89) mode. This mode compiles the C language as
defined by the American National Standard for C,
along with any extensions not prohibited by that
standard.
C99 On OpenVMS Alpha and I64 systems, places the
compiler in strict ISO/IEC C Standard 99 (C99)
mode. This mode accepts just the C99 language
without extensions, and diagnoses violations of
the C99 standard. /STANDARD=C99 defines the
__STDC_VERSION__ macro to the C99-specified value
of 199901L, because C99 is a superset of
Amendment 1 to the C89 standard, and the default
mode of RELAXED is a superset of C99.
On OpenVMS VAX systems, produces a warning and
places the compiler in /STANDARD=RELAXED ANSI89
mode.
LATEST On OpenVMS Alpha and I64 systems, places the
compiler in the latest ISO C standard dialect.
/STANDARD=LATEST is currently equivalent to
/STANDARD=C99, but is subject to change when
newer versions of the ISO C standard are
released.
RELAXED Places the compiler in relaxed ANSI C Standard
mode. The compiler accepts ANSI/ISO C Standard
C89 and C99 features, as well as nearly all
language extensions (such as additional VSI C
keywords and predefined macros that do not begin
with an underscore). It excludes only K&R
(COMMON mode), VAX C, and Microsoft features that
conflict with standard C.
This is the default mode of the compiler, and is
equivalent to /NOSTANDARD.
MS Places the compiler in Microsoft compatibility
mode, which interprets source programs according
to certain language rules followed by the C
compiler provided with the Microsoft Visual C++
compiler product.
ISOC94 Places the compiler in ISO C 94 mode, which
enables digraph processing. It also defines the
predefined macro __STDC_VERSION__=199409 when
specified alone or in combination with the
ANSI89, MIA, RELAXED, MS, COMMON, or PORTABLE
keywords.
This option can be specified alone or with any
other /STANDARD option except VAXC. If it is
specified alone, the default major mode is
RELAXED.
COMMON Places the compiler in K & R language mode; that
is, compatibility with older UNIX compilers such
as pcc and gcc. This mode is close to a subset
of /STANDARD=VAXC mode.
VAXC Places the compiler in VAX C mode. There are
differences in the C language as implemented in
previous versions of VAX C and the C language as
defined by ANSI (the differences are primarily
concerned with how the preprocessor works). This
mode provides compatibility for programs that
depend on old VAX C behavior.
PORTABLE Places the compiler in RELAXED mode, and enables
the issuance of diagnostics that warn of any
nonportable usages encountered.
Note that /STANDARD=PORTABLE is supported for
VAX C compatibility only. It is equivalent to
the recommended combination of qualifiers
/STANDARD=RELAXED /WARNINGS=ENABLE=PORTABLE.
MIA Places the compiler in strict ANSI C mode with
the following behavior differences to conform to
the Multivendor Integration Architecture (MIA)
standard:
o On OpenVMS VAX systems, G_FLOAT becomes the
default floating-point format for double
variables. (On OpenVMS Alpha systems, G_FLOAT
is already the default.)
o In structures, zero-length bit fields cause
the next bit field to start on an integer
boundary, rather than on a character boundary.
If the /STANDARD qualifier is not specified, the default is
/NOSTANDARD, which is equivalent to /STANDARD=RELAXED.
If you specify the /STANDARD qualifier, you must supply an option.
With one exception, the /STANDARD qualifier options are mutually
exclusive. Do not combine them. The exception is that you can
specify /STANDARD=ISOC94 with any other option except VAXC.
VSI C modules compiled in different modes can be linked and
executed together.
Topic?
$