问题
I'm looking for a free copy version of the C89/C90 standard, but I can't find it anywhere! Why is so hard to find it?
C99 and C11 standards are very easy to get a copy of on Internet. Even in Stack Overflow question Where do I find the current C or C++ standard documents? and in The C Standard, Obtaining the Standard don't contain what I'm looking for.
Web searches didn't helped either, nor Open Standards.
回答1:
You can find nice HTML versions of C89, C99, and C11, as well as some of the official draft PDF files they're generated from, here:
http://port70.net/~nsz/c/
Some other useful direct links to free PDF files of the C89/C90, C99 and C11 standards are listed below:
C89/C90: https://www.pdf-archive.com/2014/10/02/ansi-iso-9899-1990-1/ansi-iso-9899-1990-1.pdf
C99: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
C11: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
回答2:
There's exactly one remaining place that I know of where you can still purchase an official NON-DRAFT version of the original ANSI C89 standard. This one place is Standards Australia. Their web-store link for C89 is here:
http://www.techstreet.com/standards/as-3955-1991?product_id=1178768
Don't get confused by the fact that it's called 9899:1990, because that's just the ISO number that C89 got when the ISO absorbed it from ANSI in 1990. And also don't be dissuaded by the fact the Australian Standards document number is "AS 3955-1991," because 1991 is probably just the year that they themselves absorbed it from the ISO.
Note the Abstract given on that page:
[Abstract]
Specifies the form and establishes the interpretation of programs written in
the C programming language. This Standard is identical with and has been
reproduced from ISO/IEC 9899:1990.
That document really is the original ANSI C89 standard, just in a re-re-printed form. If you have 160.29 USD to fork over, you can get a copy for digital download of the PDF or the printed edition for the same price.
Once you have the standard, then all amendments and technical corrigenda can be found here, for free:
http://www.open-std.org/jtc1/sc22/wg14/www/standards
回答3:
Just a little background from GCC's online documentation to help clarify what exactly the key terms are:
The original ANSI C standard (X3.159-1989) was ratified in 1989 and published in 1990. This standard was ratified as an ISO standard (ISO/IEC 9899:1990) later in 1990. There were no technical differences between these publications, although the sections of the ANSI standard were renumbered and became clauses in the ISO standard. This standard, in both its forms, is commonly known as C89, or occasionally as C90, from the dates of ratification.
Originally posted as a comment, here is a link to what appears to be a draft of the former mentioned standard, the ANSI C standard. It is my understanding that the drafts can be viewed for free, as @pmg has noted as well.
来源:https://stackoverflow.com/questions/17014835/where-can-i-find-the-c89-c90-standards-in-pdf-format