cast from ‘void*’ to ‘int’ loses precision

今天写libevent程序,想打印一下回调函数中参数的地址,所以使用reinterpret_cast将void*转换为int,但是一直报“cast from ‘void*’ to ‘int’ loses precision”,看了一下,虽然使用的操作系统是64位的,但是gcc定义的int还是32位的,所以由上面的报错,将void*转换为long后报警消失。

另外event_set中参数是值传输,所以为了在回调函数中安全的使用此参数,要在堆上申请空间,结束时要delete防止内存泄露。

你可能感兴趣的:(cast)