我最近读过一个有趣的代码,但我无法确定它的含义:
void foo(arg1, arg2)
int arg1;
unsigned char arg2[16];
{
//some code
}
在作为函数参数声明和定义之前,我从未在C语言中看到类似的东西。我从2003年开始开发软件,但它有点像旧的或全新的东西。它是什么样的功能定义风格?我记得,你可以用Pascal声明参数,但不能用C语言声明。
安德鲁
答案 0 :(得分:2)
这相当于:
void foo(int arg1, unsigned char arg2[16])
{
这是非常古老的风格。
答案 1 :(得分:2)
它是原始的ANSI C之前的版本,如K& R1(Kernighan和Ritchie的“C编程语言”的原始版本)所示。所谓的“原始”或前ANSI C编译器使用了这种语法。可以调用编译器,以便他们可以使用命令行选项接受这种类型的代码。
从那以后,C已经发展了很长的路,但你仍然偶尔会在较旧的程序中遇到它。