pre*_*e13 6 c pointers
我正在写一个在递归链末尾调用的函数.这个函数需要弄清楚它在被调用的时候在内存中的位置.代码如下:
void recover () { int * x = (int *)&x; }
问题是程序只是跳过这个语句,好像它从未写过.我在GDP中证实了这一点.你能想出为什么这条线被忽略的原因吗?
谢谢!
nnn*_*nnn 9
将变量声明为volatile.它应该阻止编译器优化.
volatile
volatile int * x = (int *)&x;
ysa*_*sap 6
如果您正在编译并打开优化,那么由于对程序没有影响,此代码可能已经过优化.使用-O0选项.
-O0
归档时间:
9 年,10 月 前
查看次数:
565 次
最近记录: