SCIP:关于装箱示例中的"SCIP_ReaderData"

SCIP: About the "SCIP_ReaderData" in the bin packing example

关于 binpacking 示例中定义的 reader 插件的问题。在接口方法(文件reader_bpa.c)中找到如下声明,

 SCIP_READERDATA* readerdata;
 readerdata = NULL;

我知道 SCIP_READERDATA 在文件 type_reader.h 中定义:

typedef struct SCIP_ReaderData SCIP_READERDATA;

然而,结构体 SCIP_ReaderData 并没有在 binpacking reader 中定义,那么 "SCIP_READERDATA* readerdata;" 引用的实际结构体是哪个? reader数据是什么类型的指针?

PS: 我注意到 SCIP 中默认的 readers 有类似的用法。

如果我没记错的话,那是 C 题而不是 SCIP 题。接口函数 SCIPincludeReader() 和 SCIPincludeReaderBasic() 需要一个指向 reader 数据的指针作为最后一个参数。 Reader 数据应该允许插件作者通过像许多其他插件一样声明相应的 struct SCIP_ReaderData 来将任意数据与其 reader 插件连接。 如果您尝试对指针做任何事情,例如,使用 SCIPallocMemory(scip, &readerdata) 为其分配内存,您将得到编译器错误,因为指针指向 不完整类型 ,即 struct SCIP_ReaderData.

找到更多关于不完整类型的有用信息,例如,here

关键是,该示例使用它来更清楚地说明哪些参数被传递给 SCIPIncludeReaderBasic()-函数,否则您会看到 NULL