2011-02-24 129 views
0

在我的代码我得到这个错误:类型转换用C

expected ‘const void *’ but argument is of type ‘struct in_addr’ 

我使用memcmp我可以类型转换struct in_addrconst void*作为const void * (struct in_addr)

+2

让我们来看看代码... – 2011-02-24 08:12:30

+0

埃德小号@ memcmp(常量无效*((*临时).pktFltr.ip.ip_src),常量无效*&(ptr_fltr-> pktFltr.ip .ip_src),32);我有tyecast它,我得到一个错误:错误:之前“常量” 错误预期表达:参数太少函数“memcmp” – asir 2011-02-24 08:31:13

回答

6

你需要转换地址的对象,而不是对象本身:

(const void *)&my_obj 

但事实上,这样的演员是implict,所以你可以ju ST用途:

&my_obj 
+0

奥利查尔斯沃思@ memcmp(常量无效*((*临时).pktFltr.ip.ip_src) ,const void *&(ptr_fltr-> pktFltr.ip.ip_src),32);我有tyecast它我得到一个错误:错误:在'const'之前的预期表达式 错误:函数'memcmp'太少参数 – asir 2011-02-24 08:33:49

+0

@asir,强制转换需要围绕它们的括号'(const void *)' – 2011-02-24 08:37:31

+0

@asir:也请观察SO的简单语法。 '@'出现在一个人的名字前面。应该将代码放入反引号中,以便它更像“更容易捕获”。 – 2011-02-24 08:40:16