小编zag*_*ago的帖子

LLVM和GCC,不同的输出相同的代码

这是一个示例代码,用于显示LLVM编译器和GCC的不同输出.我想知道为什么?答案应该很简单,但我看不到它.(Xcode 4.6.1)

代码:

#include <stdio.h>

#define MAX(a,b) ( (a) > (b) ? (a) : (b) )

int increment() {
    static int i = 42;
    i += 5;
    printf("increment returns %d\n",i);
    return i;
}

int main( int argc, char ** argv ) {
    int x = 50;
    printf("max of %d and %d is %d\n", x,increment(),MAX(x, increment()));
    printf("max of %d and %d is %d\n", x,increment(),MAX(x, increment()));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

LLVM输出:

increment returns 47
increment returns 52
increment returns 57
max of 50 …
Run Code Online (Sandbox Code Playgroud)

c compiler-construction macos gcc llvm

2
推荐指数
1
解决办法
341
查看次数

标签 统计

c ×1

compiler-construction ×1

gcc ×1

llvm ×1

macos ×1