c0x.coding-guidelines.com/5.1.2.2.1.html 160 The function called at program startup is named main. 161 The implementation declares no prototype for this function. 162 It shall be defined with a return type of int and with no parameters: int main(void) { /* ... */ } 163 or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared): int main(int argc, char *argv[]) { /* ... */ }