Mabden said:
Yet, my compiler was written in 1994. And my Bible is K&R2.
What part of that involves C99? How can your standards define C
programming for my environment? Does the American Heritage
Dictionary define English for the United Kingdom?
Not really. Don't be a standards snob. Not everyone has access to modren
technology. As you have said in the past, C must encompass many kinds of
hardware, and many years of development.
Yes, really.
Note that I wrote "C standards", plural. The latest standard is ISO
C99, but the ISO C90 standard (or, equivalently, the ANSI C89
standard) is still widely used.
If your compiler was written in 1994, its authors almost certainly
spent a great deal of time making sure it conforms to the C89 or C90
standard as closely as possible. If they didn't, they certainly
should have.
If you'll look at the front cover of your "Bible", K&R2, you'll
probably find a statement that it's based on the ANSI standard.
Most programmers probably don't need a copy of the standard (though in
my opinion they'd benefit from it). You can certainly learn C from a
decent textbook. But every decent textbook out there was written by
someone who *has* read the standard, and in many cases, actually
helped write it.
If a statement in a textbook disagrees with the standard, the
textbook, not the standard, is in error (except in cases where the
standard is internally inconsistent or doesn't correctly express the
intent). That even applies to K&R2. See
But not EVERY C compiler and / or library.
Yes, EVERY C compiler and/or library. Any C compiler or library that
violates the standard (whichever version of the standard it claims to
conform to) is broken. I doubt that you'll find an implementer of a C
compiler or library who disagrees with this.
Many implementations, of course, provide extensions not defined by the
standard. Most such implementations provide a mode in which they
conform as closely as possible to the standard without extensions,
such as gcc's "-ansi -pedantic -W -Wall" or "-std=c99 -pedantic -W -Wall"
mode.
By "library", I mean an implementation of the C standard library.
There are plenty of libraries that implement extensions (POSIX is one
example); this is permitted by the standard itself, as long as the
extensions don't violate the standard.
K&R doesn't discuss onjects, that I recall. Please let me know if I missed a
page.
I don't have my copy handy, but I believe you did.
Perhaps, the minority is afeared of the hail storm of hate, were they to
speak up.
Speak up about what?
The narrow issue that led to this discussion was the meaning of the
word "object". In plain English, it refers to a number of things that
are clearly outside the scope of this newsgroup, such as the coffee
mug sitting to my right. If we're going to use the term "object" in
this newsgroup, I suggest that we should use it in the sense defined
by the C standard. Someone who insists on using some other esoteric
definition of "object" (such as one that includes functions) is not
taking a brave stand against the tyranny of the majority; he's merely
sowing confusion.
Misusing a term out of temporary ignorance is a very different thing.
Everyone makes mistakes, and most of us here are willing to just point
out an error and move on. What annoys us is someone who persistently
misuses a term in the face of clear evidence that he's wrong.
I hope not to be lumped into a similar group. I try to understand the
technical boundaries of C, but I have never read a Standards document. I
have many years of C programming under my belt and feel quite savvy with the
language. But I have had issues with fine technical points. As you may
remember, I have no problem admitting to error if you can convince me you
are correct.
I am not familiar with the general distaste for Mr. E. Robert Tisdale, so I
realize I could be making a mistake by agreeing with some of his points, but
if that is all it takes to be dismissed on this newsgroup then you should
all be ashamed of yourselves.
ERT does make correct statements at times, and I for one have
sometimes gone out of my way to acknowledge that fact. (I admit I've
done so with a sense if irony, implying that a correct statement from
ERT is an unusual occurrence.) But he has frequently, loudly, and
persistently maintained that *his* views of what the C programming
language is all about are correct and the standard is irrelevant. We
probably overreact to him at times (which I suspect is exactly what he
wants), but it's important to refute his nonsense.
Also, I don't prefer the term "lying" when one is stating an
opinion. Surely an opinion is just that, and not a lie. I found you,
Keith, to be quite tolerant in our other discussion, and would
prefer to see you keep the same detachment regardless of the poster.
That's not a bad point. ERT is so persistently wrong, so impervious
to reason, and so skilled at starting and continuing tedious
arguments, that it's difficult to believe that all his mistakes are
honest ones, but I admit it's possible.
I'll amend my previous request; rather than "Please stop lying to
newbies.", I probably should have written "Please stop misleading
newbies."