有些时候在一个函数里面,需要一些临时的对象。但又希望用完尽快释放掉。就用上了如下的代码
.....
do
{
classA A; //调试以后发现这个对象在do-while之外会被释放掉。
}while(0);
.....
我现在有个疑问,记得曾经讨论过类似的问题;也有可能是我记错了。
编译器在编译的时候,do-while可能不是这样做的。有可能是classA A申请了,但是不释放,一直到函数退出该弹栈的时候才释放。
我想请问一下,这个行为确实和编译器有关吗?有没有类似的书籍可以看(非编译原理)?