gjb at gbch.net
Sat Sep 21 04:22:02 UTC 2002
| A wrote:
| > On Friday 20 September 2002 2:48 pm, you wrote:
| > #
| > # I added the case because the compiler complains if I don't.
| > # SUN Workshop, not gcc :(, unfortunaltly.
| > That is most likely because you have missed out
| > #include<stdlib.h>
| > which includes the prototype for the malloc family. With this missed out the
| > compiler assumes that the return type will be int and therfore requires the
| > cast. This is the kind of error that gets masked with casts.
| Nope. It's there.
| I added the case because the calloc is in C file that is being included
| as part of a c++ project. It's the c++ compiler that bitches, not the C
I'm going to assume you mean "cast" in the various places where
you wrote "case" -- this sort of carelessness, especially where
both words are technical words, makes it difficult to help.
Anyway, to get to the point, you cannot compile C correctly with
a C++ compiler. They are different languages and have different
rules. There is legal C code which is not legal C++; and there
is legal C++ code which is not legal C. And there are things
that, although legal in both languages, do not have the same
meaning. C and C++ have very different requirements for casts.
This is a C list. You have been given C answers. If you are
trying to write C++, you need another list.
More information about the linuxCprogramming