Quote:
If main returns an int then why does it let me declare it void and still work?
Your compiler is protecting you from yourself. Just because it works doesn't mean it's right.
Quote:
What is the difference if both work?
void main() is wrong, int main() is right. That's the difference. Even if it seems like its working that doesn't mean it really is.
Quote:
What problems can I encounter from declaring it void instead of int?
I learned that void main is undefined behavior, and undefined behavior can do anything at all.
Quote:
Can you explain the whole thing about using the newer ones. Which ones are old? Which ones are the new ones? What advantages do the newers ones have? More efficient?
You mean the header files? The new ones have more stuff that makes programming easier, why use the old ones if you have the new ones?