"Default arguments must be specified with the first occurrence of the function name" means: - If the function has a prototype above main and the function itself is defined below main, then the defult arguments must be specified in the prototype. - If there is no prototype, but the function itself is defined above main, then the default arguments must be specified in the function header (and, in fact, there is nowhere else to define them).