0

我最近阅读了一段有趣的代码,但我无法识别它的含义:

void foo(arg1, arg2)
int arg1;
unsigned char arg2[16];
{
    //some code
}

我以前从未在 C 语言中看到过类似的函数参数声明和定义。自 2003 年以来,我一直在开发软件,但它就像旧的或全新的东西。是什么样的函数定义风格?我记得,你可以用这种方式在 Pascal 中声明参数,但不能在 C 中。

安德鲁

4

2 回答 2

2

这等于:

 void foo(int arg1, unsigned char arg2[16]) 
 {

这是非常古老的风格。

于 2013-03-28T08:24:00.383 回答
2

它是原始的 pre-ANSI C,如 K&R1(Kernighan 和 Ritchie 的“The C Programming Language”的原始版本。所谓的“原始”或 pre-ANSI C 编译器使用这种语法。一些现代编译器可以这样调用)他们将接受带有命令行选项的此类代码。

从那时起,C 已经发展了很长一段路,但您仍然偶尔会在较旧的程序中遇到它。

于 2013-03-28T08:28:22.983 回答