260*_*607 2 c++ eclipse debugging optimization gnu
我有一个关于Eclipse CDT和GNU GCC编译器的简单问题.
该应用程序编译在
除了性能差异之外,是否保证在这两种模式下编译的应用程序生成完全相同的结果?
我即将向最终用户发布应用程序,该应用程序是基于服务器的,它处理多个多播数据源.任何人都可以提供一些建议,我应该为最终用户选择哪种编译模式.
谢谢.
只有当您的代码完全符合标准时,才能确保您的程序产生相同的结果.有许多方法可以编写具有"未定义行为"的代码,这些代码实际上可以在未经优化的构建上运行,但在优化时可能会中断.
例如,假设我有:
struct A
{
int i;
};
struct B
{
int i;
};
int main()
{
A a;
a.i = 10;
B* b = reinterpret_cast<B*>(&a);
std::cout << b->i << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这几乎肯定会打印出10,但是由于严格的别名规则,编译器可以合法地生成执行其他操作的代码
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |