C语言中的混淆代码

5
请解释以下C语言代码片段为什么是有效的。
int main(c, v) char *v; int c;{
 //program body
}

我偶然发现了一些来自国际混淆C代码竞赛的例子,我很好奇。

请参考这个问题:https://dev59.com/T2ox5IYBdhLWcg3w8I1J - Renan Greinert
4个回答

9

2
这是函数声明的旧风格,如果你问为什么char*v; int;在括号外面。请注意保留HTML标签。

0

这是“K&R C”,其中函数参数在参数列表结束和函数体开始之间声明。


0

这只是K&R风格的函数定义,虽然被标记为“过时”,但仍然被标准允许。在该代码中不好的地方是第一个参数应该是char **v(或char *v[])以符合标准。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接