本文介绍了如何对无效进行类型转换*的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想强调个人结构。

但我不知道如何进行类型转换。

有人来解决这个问题吗?





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.


这篇关于如何对无效进行类型转换*的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-09 23:12