本文介绍了如何对无效进行类型转换*的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想强调个人结构。
但我不知道如何进行类型转换。
有人来解决这个问题吗?
i want to typecast personal structure.
but i dont know how do i typecast.
is anyone to solve this problem?
typedef struct _data_type
{
INT n;
BOOL b;
double db;
DWORD dw;
DOUBLE DB;
}DATATYPE;
#define CAST(data,str) (##str##*##)##data
void * data;
str ="DATATYPE"
CAST(data,str);
我的尝试:
不可能吗?请回答我的问题。
What I have tried:
is it impossible? plz, answer my question.
推荐答案
void * data;
DATATYPE * d0 = (DATATYPE *) data;
因此你的宏将成为
Hence your macro would become
#define CAST(data, DATATYPE) (DATATYPE*)(data)
用法:
Usage:
DATATYPE * d1 = CAST(data, DATATYPE);
但是,我质疑这种宏的用处。
However, I question the usefulness of such a macro.
这篇关于如何对无效进行类型转换*的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!