小弟咨询一个关于c语言函数声明的有关问题

小弟咨询一个关于c语言函数声明的问题
我在一些程序代码里看到如下声明和定义函数的形式,如:

// Declaration
void test_compress OF((Byte *compr, uLong comprLen,
  Byte *uncompr, uLong uncomprLen));


// Define
void test_compress(compr, comprLen, uncompr, uncomprLen)
  Byte *compr, *uncompr;
  uLong comprLen, uncomprLen;
{
// Do something
}

我想请问一下:声明里的OF是什么意思,声明和定义是怎么关联的呢,使用这种形式有什么好处呢?

------解决方案--------------------
声明是让你告诉编译器,你要调用的函数参数和返回值都是什么东西,他好给你留下适合的位置。
定义则是告诉编译器你的函数要干些什么事情。
------解决方案--------------------
// Define
void test_compress(compr, comprLen, uncompr, uncomprLen)
Byte *compr, *uncompr;
uLong comprLen, uncomprLen;
{
// Do something
}
貌似是很老的函数定义形式了.现在都是:
// Define
void test_compress OF((Byte *compr, uLong comprLen,
Byte *uncompr, uLong uncomprLen))
{
// Do something
}


// Declaration
void test_compress OF((Byte *compr, uLong comprLen,
Byte *uncompr, uLong uncomprLen));
你看看有没有名为OF的宏吧。真没见过.
声明跟定义一致就好了.

------解决方案--------------------
何不看下头文件OF的定义呢?
/* Type declarations */

#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args) ()
# endif
#endif
------解决方案--------------------
声明用于检查代码的正确性,定义用于生成二进制源码。
------解决方案--------------------
友情帮顶!谢谢给分!
------解决方案--------------------
告诉编译器干些事
------解决方案--------------------
声明应该是宏的问题吧;函数定义的参数的类型在括号外描述,貌似可以的,忘了在哪本书看过。标准C都支持的。
------解决方案--------------------

------解决方案--------------------
探讨
谢谢。声明的问题解决了,哪函数定义的形式为什么是那样呢?

引用:
何不看下头文件OF的定义呢?
/* Type declarations */

#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args)……