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()
{
......
}
一样的道理,让编译器知道有这么个东西。