小编Dav*_*545的帖子

C根据优化级别给出不同的输出(新示例)

基于这篇非常好的博客文章,严格的别名情况非常糟糕,我已经将这段代码放在网上供您测试:

http://cpp.sh/9kht(输出在-O0和-O2之间变化)

#include <stdio.h>

long foo(int *x, long *y) {
  *x = 0;
  *y = 1;
  return *x;
}

int main(void) {
  long l;
  printf("%ld\n", foo((int *)&l, &l));
}
Run Code Online (Sandbox Code Playgroud)
  • 这里有某种未定义的行为吗?

  • 当我们选择-O2级别时,内部会发生什么?

c optimization gcc compilation

6
推荐指数
1
解决办法
99
查看次数

标签 统计

c ×1

compilation ×1

gcc ×1

optimization ×1