Объявить пустую функцию в C?

Я учу C, и я изучаю функции. Итак, я прочитал, что когда я реализую свою собственную функцию, я должен объявить ее перед main (). Если я пропущу объявление, компилятор получит сообщение об ошибке.
Как я изучал этот пример (узнает, является ли число простым числом)

#include <stdio.h>

void prime();               //function prototype(declaration) 

int main()
{ 
   int num,i,flag; 

   num = input();            // No argument is passed to input()

   for(i=2,flag=i; i<=num/2; ++i,flag=i)
   {
      flag = i;

      if(num%i==0)
      { 
         printf("%d is not prime\n",num); 
         ++flag; 
         break; 
      }
   }

  if(flag==i)
     printf("%d is prime\n",num);

  return 0;

}     

int input()  /* Integer value is returned from input() to calling function */
{ 
    int n;
    printf("\nEnter positive enter to check: "); 
    scanf("%d",&n); 
    return n;
 }

Я заметил, что объявлена функция prime (), но в основном вызывается функция input (), а также функция input () реализована внизу. Хорошо, я подумал, что это ошибка, и я меняю название с простого на вводное.
тем не мение&nbsp;если я удаляю декларацию и не помещаю ее туда, программа компилируется без ошибок и работает без сбоев. (Я компилирую и запускаю его в Ubuntu)

Итак, мой вопрос: нужно ли объявлять пустую функцию без аргументов?