2013-06-05 55 views
1

我在想,如果铸造这里是最好的解决办法:在这里铸造最好的解决方案吗?

这是函数原型:

void function(unsigned char * data) 

这是我打算如何使用它(nSize从读):

unsigned int nSize = 15; 

function((unsigned char*) &nSize); 
+5

由于问题中的(非常有限)信息,答案只能是:是的,您需要投射。更大的问题是*为什么*你需要将一个指向一个整数的指针传递给一个指向一个字符的函数? –

+3

使用这种不兼容指针的动机是什么? –

+1

您还可以将函数定义为函数(void * data),并在其中定义类型。顺便说一句你期待的结果是什么? – aisbaa

回答

1

假设函数原型设置为石头和nSize必须是一个int,是的,这看起来是正确的。

1

是的,就你而言,演员似乎是必要的。

请注意,使用C++风格的命名转换优于C风格转换。在你的情况下,reinterpret_cast是正确的选择。请注意,这是一种危险行为,详情请参阅here

function(reinterpret_cast<unsigned char*>&nSize); 
相关问题