C vs C++ function questions

Posted by james on Stack Overflow See other posts from Stack Overflow or by james
Published on 2012-10-05T09:32:36Z Indexed on 2012/10/05 9:37 UTC
Read the original article Hit count: 147

Filed under:
|
|
|
|

I am learning C, and after starting out learning C++ as my first compiled language, I decided to "go back to basics" and learn C.

There are two questions that I have concerning the ways each language deals with functions.

Firstly, why does C "not care" about the scope that functions are defined in, whereas C++ does?

For example,

int main()
{
    donothing();
    return 0;
}

void donothing() { }

the above will not compile in a C++ compiler, whereas it will compile in a C compiler. Why is this? Isn't C++ mostly just an extension on C, and should be mostly "backward compatible"?

Secondly, the book that I found (Link to pdf) does not seem to state a return type for the main function. I check around and found other books and websites and these also commonly do not specify return types for the main function. If I try to compile a program that does not specify a return type for main, it compiles fine (although with some warnings) in a C compiler, but it doesn't compile in a C++ compiler. Again, why is that? Is it better style to always specify the return type as an integer rather than leaving it out?

Thanks for any help, and just as a side note, if anyone can suggest a better book that I should buy that would be great!

© Stack Overflow or respective owner

Related posts about c++

Related posts about c