title: Error in c program with two function having same return types and names but different function signature
body: <p>Is this allowed in c? </p>
  
  <pre><code>void hello(int a, float y)
  {
  
  
      int s = a + y;
      printf("value in hello = %d \n",s);
  
  }
  
  void hello(int a, int b, int c)
  {
  
  
      int s = a + b + c;
      printf("value in hello 2 = %d \n", s);
  
  }
  
  
  int main(void) {
      // your code goes here
      hello(2, 3.5);
      hello(1, 2, 3);
      return 0;
  }
  </code></pre>
  
  <p>Aren't the functions signatures different here?</p>
  
  <p>I am getting an error : </p>
  
  <pre><code>prog.c:11:6: error: conflicting types for 'hello'
   void hello(int a,int b,int c)
        ^
  prog.c:2:6: note: previous definition of 'hello' was here
   void hello(int a,float y)
        ^
  prog.c: In function 'main':
  prog.c:24:2: error: too few arguments to function 'hello'
    hello(2,3.5);
    ^
  prog.c:11:6: note: declared here
   void hello(int a,int b,int c)
  </code></pre>