读书人

Dll中的一段C代码关于struct看不懂

发布时间: 2012-04-23 13:17:38 作者: rapoo

Dll中的一段C代码,关于struct,看不懂。

C/C++ code
struct real_pcre;                 /* declaration; the definition is private  */typedef struct real_pcre pcre;


这是pcre的pcre.h中的一段代码,配套的还有pcre.dll和pcre.lib
第一行是什么意思呢?它没有明确定义struct,难道可以隐藏起来?
为什么我自己编的dll,采用这种格式就运行不了了?



[解决办法]
这是前向声明。
real_pcre定义在其它.h文件中。
[解决办法]
前置声明,你看看其它地方有没有定义呢?
[解决办法]
向前申明
[解决办法]
一个前向声明,在其他的文件中有该结构体的定义,使用前向声明的时候,是受限制的,也就是说不能定义改的对象,因为你并不知道其类中的成员,也不知道应该分配多大的存储空间,可以定义改类的指针,也可以用在函数的参数和返回类型。
[解决办法]
也可能是为将来留的,程序中用到吗?
[解决办法]
就像
void fun();
int main()
{
......
}

void fun()
{
......
}
一样的道理,让编译器知道有这么个东西。

读书人网 >C语言

热点推荐