The GLUT function glutTimerFunc gives us the ability to call a function with a time delay prior to the call. The first parameter to glutTimerFunc is the amount of delay measured in milliseconds. GLUT garantees that the actual delay will be AT LEAST this much. The second parameter is the function that GLUT will call and the third parameter is an integer that GLUT passes to that function.
As described with the function animation, it has in essence the responsibility for creating a sequence of frames. Thus, we have GLUT call animation from main without delay (i.e., 0 as the first parameter). Since animation needs no external values when called, we can have GLU pass it any integer such as 0 (i.e., 0 as the third parameter).