C语言中的混淆代码

Baz*_*oka 5 c

请解释C中的以下代码片段是如何有效的

int main(c, v) char *v; int c;{
 //program body
}
Run Code Online (Sandbox Code Playgroud)

我偶然发现了国际混淆C代码竞赛中的一些例子,我只是好奇.

NPE*_*NPE 9

这是K&R风格的功能声明.请参阅函数声明:K&R与ANSI

但是,我不相信它有一个有效的签名main(),因为v它不是正确的类型.请参阅C的main()函数的有效签名是什么?