int comes before it because it returns and integer value after the program has finished, where 0 means that the program executed correctly.
() comes after it because some functions inherit variables from other functions, and these are declared in the brackets. Since main is the starting point of the program, it can't inherit any variables. (not local ones anyway)