title: How do i fix this error? warning: implicit declaration of function ‘main_menu’
body: <p>this is a b-day reminder code utilizing linkedlists</p>
  
  <pre><code>typedef struct node  
  {  
      char name[61];  
      int month;          int day;  
      int year;  
      struct node *next;  
  }node;  
  </code></pre>
  
  <p>this is the list</p>
  
  <pre><code>typedef struct list  
  {  
      node *head;  
      node *tail;  
  }list;  
  </code></pre>
  
  <p>this is the create list code</p>
  
  <pre><code>list *create_list(list *plist)  
  {  
      plist-&gt;head = NULL;  
      plist-&gt;tail = NULL;  
      return plist;  
  }  
  </code></pre>
  
  <p>this inserts the node created to the list</p>
  
  <pre><code>list *insert_list(list *plist, node *pnode, node *new_node)  
  {  
      new_node-&gt;next = pnode-&gt;next;  
      pnode-&gt;next = new_node;  
      if (plist-&gt;tail == pnode)  
      {  
              plist-&gt;tail = new_node;  
      }  
  }  
  </code></pre>
  
  <p>this is the add birthday menu</p>
  
  <pre><code>void add_birthday(list *List)  
  {  
      char x;  
      node *data = (node *) malloc(sizeof(node));  
      List = (list*) malloc(sizeof(list));  
      printf("******************************************************************\n");  
      printf("                    ADD BIRTHDAY REMINDER FORM\n");  
      printf("******************************************************************\n");  
      List = insert_list(List, data, create_node(data));  
      printf("Would you like to add another(y/n)?\n");  
      scanf("%c", &amp;x);  
      if (x=='y')  
      {  
              while (x=='y')  
              {  
                      if (x=='y')  
                      {  
                              getchar();  
                              printf("******************************************************************\n");  
                              node *data = (node *) malloc(sizeof(node));  
                              List = insert_list(List, data, create_node(data));  
                              printf("Would you like to add another(y/n)?\n");  
                              scanf("%c", &amp;x);  
                      }  
              }  
      }
      main_menu(List);  //the problem lies here
  }  
  </code></pre>
  
  <p>this is the main menu</p>
  
  <pre><code>void main_menu(list* List)  
  {  
      int x;  
      printf("Welcome to myCalendar version 1.0.0\n");  
      printf("Please input the number that you wish to do:\n");  
      printf("[1] Add Birthday Reminder\n");  
      printf("[2] Delete Birthday Reminder\n");  
      printf("[3] View Calendar\n");  
      printf("[4] Quit\n");  
      scanf("%d", &amp;x);  
      getchar();  
      switch (x)  
      {  
              case 1:  
                      add_birthday(List);  
                      break;  
              case 2:  
                      delete_reminder(List);  
                      break;  
              case 3:  
                      view_calendar(List);  
                      break;  
              case 4:  
                      free(List);  
                      break;  
          }  
  }
  </code></pre>
  
  <p>this is the main</p>
  
  <pre><code>int main(void)  
  {  
      list* List = (list*) malloc(sizeof(list));  
      List = create_list(List);  
      main_menu(List);  
      return 0;  
  }  
  </code></pre>