我试图在不同的结构中找到任何给定变量的“类型”并能够读取它们。(记住这是伪代码)
例如:
#include "stream.h" //a custom stream reader class I made
typedef unsigned char BYTE;
/***** SERIES OF DIFFERENT STRUCTS ******/
struct asset
{
char *name;
int size;
BYTE *data;
};
struct asset2
{
char *lang;
char *entry;
};
/*****************************************/
void readAsset( Enumerable<struct> &istruct)
{
foreach( object o in istruct )
{
switch( o )
{
case int:
&o = _stream->ReadInt32();
break;
case char:
&o = _stream->ReadChar();
break;
case *:
&o = _stream->ReadInt32();
break;
default: break;
}
}
}
我希望它能够执行以下操作:
asset a1;
asset2 a2;
readAsset( a1 );
readAsset( a2 );
并将文件中的所有信息传递给 a1 和 a2。
我想知道 C/C++ 中是否有一种方法可以从结构中的任何对象中获取数据的类型,然后基于该类型进行读取?复杂的枚举有可能吗?抱歉代码不好,但我希望它更容易理解我正在尝试做的事情。
附加信息:
_stream 是一个指向 Stream 类的指针,类似于我在 .Net 中创建的 Stream Reader 它从文件中读取数据并根据读取的数据量来推进它的位置。
如果你不明白我在问什么,我很乐意重新措辞。