小弟咨询一个关于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都支持的。
[解决办法]
[解决办法]