代码如下:
double interference_code(int seg, void *data)
{
double BWshare = *((double *)data); // Fraction of the network bandwidth
double ran = ttAnalogIn(1);
if (ran < BWshare) {
ttSendMsg(1, NULL, 80); // send 80 bits to myself (no data)
}
想请教一下,其中 BWshare = *((double )data) 这句中的()作用和原理
强制转换指针类型并取值
double BWshare = * ((double * )data);
因为data是void指针,所以要强制转换为double指针,这样再用 * 就可以取得这个double * 指向的浮点数值了。
(double *)A 将A当作指向double的指针来看待
*(double *)A 将A当作指向double的指针来看待,然后取出A指向的double值
*(double *)A=B 将A当作指向double的指针来看待,然后将B的值取出来放到A指向的地址处