> 
> **Possible Duplicate:**  
> 
> [Standard way to define parameter-less function main() in C](https://stackoverflow.com/questions/8022274/standard-way-to-define-parameter-less-function-main-in-c) 
> 
> 
> 

Can I use a ~~declaration~~ definition of function `main()` in C that looks like:

```
int main() {}

```

Yes, I saw that standard says that there are only two guaranteed-supported versions:

```
int main(void) {}

```

and

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

```

But what about empty paratheses? I know that it has another meaning than in C++ (in C, it means that number and types of parameters of this function isn't known), but I saw really much code in C with this ~~declaration~~ definition of main.

So who's wrong?