我正在阅读一段执行此操作的代码
void *ptr_to_something = (void*)0x23; // I made this up, it's just a pointer to something
void *addr;
void *dst = (void*)(addr = ptr_to_something); // This is the line that confuses me
它似乎将指向某物的指针分配给同一事物的另一个指针。没关系..但随后结果被括在括号中,投射到同一事物,并以某种方式重新分配给指向同一事物的第三个指针。
这是否有效C++?是否可以保证分配分配的结果会产生相同的分配对象?
它C++中有效:
int a, b, c;
a = b = c = 1;
因此,分配的结果就是该分配的值。
演员阵容的目的是什么,是个谜*。 您是否尝试过删除它,这会产生警告吗?
*不是谜,只是也许没有必要。
这是有效的C++。选择以这种方式格式化代码很奇怪,不建议这样做,但它是完全合法的。
这段代码等效于这个(我认为写得更好(的代码:
void *ptr_to_something = (void*)0x23;
void *addr = ptr_to_something;
void *dst = addr;