风情123 发表于 2011-10-28 17:14

编译器对内存的不同行为不知是什么原因,急~

请教下大家:

有没有遇到过内存对齐造成的不同对象的空间地址相互侵占的情况哈~;也可能是定义宏造成的~
目前我这边遇到了,而且是:
而且加的宏是在sources(这个文件相当于makefile的);用-D的方式加宏SD_RELEASE,但是那个宏SD_RELEASE在实际代码中还未起作用的;就导致了不一样的效果的
我觉得是
用这种方式传宏进入就造成了编译器对原来的内存布局进行了优化;而那两个对象其中一个或者两个恰好被优化到了的

具体原因大家帮看看哈,多谢了~

red0602 发表于 2011-10-29 00:37

没看懂,支持一下,觉得一般情况编译器都会读代码进行优化,除非是用了volatile修饰

EricFisher 发表于 2011-11-03 10:47

如果部分代码定义了宏,而另外部分没有定义,岂不是会导致程序逻辑不正确?
页: [1]
查看完整版本: 编译器对内存的不同行为不知是什么原因,急~