title: main() function in C
body: <p>I've been learning C programming in a self-taught fashion for some weeks, and there are some questions that I have concerning the <code>main()</code> function.</p>
  
  <ol>
  <li><p>All functions must be declared in their function prototype, and later on, in their defintion. Why don't we have to declare the <code>main()</code> function in a prototype first?</p></li>
  <li><p>Why do we have to use <code>int main()</code> instead of <code>void main()</code>?</p></li>
  <li><p>What does return 0 exactly do in the <code>main()</code> function? What would happen if I wrote a program ending the <code>main()</code> function with <code>return 1;</code>, for example?</p></li>
  </ol>