我最近阅读了一段有趣的代码,但我无法识别它的含义:
void foo(arg1, arg2)
int arg1;
unsigned char arg2[16];
{
//some code
}
我以前从未在 C 语言中看到过类似的函数参数声明和定义。自 2003 年以来,我一直在开发软件,但它就像旧的或全新的东西。是什么样的函数定义风格?我记得,你可以用这种方式在 Pascal 中声明参数,但不能在 C 中。
安德鲁
我最近阅读了一段有趣的代码,但我无法识别它的含义:
void foo(arg1, arg2)
int arg1;
unsigned char arg2[16];
{
//some code
}
我以前从未在 C 语言中看到过类似的函数参数声明和定义。自 2003 年以来,我一直在开发软件,但它就像旧的或全新的东西。是什么样的函数定义风格?我记得,你可以用这种方式在 Pascal 中声明参数,但不能在 C 中。
安德鲁
这等于:
void foo(int arg1, unsigned char arg2[16])
{
这是非常古老的风格。
它是原始的 pre-ANSI C,如 K&R1(Kernighan 和 Ritchie 的“The C Programming Language”的原始版本。所谓的“原始”或 pre-ANSI C 编译器使用这种语法。一些现代编译器可以这样调用)他们将接受带有命令行选项的此类代码。
从那时起,C 已经发展了很长一段路,但您仍然偶尔会在较旧的程序中遇到它。