0

我正在开发一个链接到 C 库的 C++ 项目。我的 C++ 类如下:

extern "C" {
    struct __struct1__;
    struct __struct2__;
    struct __struct3__;
    struct __struct4__;
}

namespace mynamespace {
   class MyClass : public Parent {
     public:
          ....

     private:
          ....

          __struct1__* s1;
          __struct2__* s2;
          struct __struct3__ s3;
          struct __struct4__ s4;
   };
}

在创建像 s1 和 s2 这样的指针时,一切正常。但是对象不能很好地工作。生成以下错误:

使用未定义的结构时出错

如何创建像 s3 和 s4 这样的对象?

4

1 回答 1

2

多变的:

__struct1__ *s1

只是类型指针(指向你的结构,但仍然只是一个指针),所以编译器确切地知道这个变量需要多少堆栈内存。但在以下情况下:

__struct3__ s3

这个变量是 __struct3__ 类型,所以没有完整的定义编译器不知道它的大小。

于 2013-08-04T19:34:18.097 回答