en realidad la funcion main es:
int main(int argc, char *argv[])
devuelve un entero int main(int argc, char *argv[])
sus parametros son: int argc, entero que indica el numero de parametros que se le pasan al ejecutar el programa. char *argv[], doble puntero donde se encuentran los parametros que se le pasan.
por ejemplo, si ejecutas algo del estilo: ./prueba 3 derecha -->argc=3, argv[0]=./prueba, argv[1]=3, argv[2]=derecha
La funcion main puede ser void main(void) si no quieres pasarle argumentos ni que te devuelva nada, o int main(void) donde te devuelve un entero pero no le pasas ningun argumento.