Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Per 5.1.2.2.1 [C11 Final Draft], the `main` function should be declared as either

    int main(void) { /* ... */ }
or

    int main(int argc, char *argv[]) { /* ... */ }


You missed the relevant text:

>or equivalent; 10)

>10) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as char * * argv, and so on.

And Standard also says that:

>or in some other implementation-defined manner.

and:

>In a freestanding environment (in which C program execution may take place without any benefit of an operating system), the name and type of the function called at program startup are implementation-defined.

So main can be pretty much anything according to the Standard, depending on the system.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: