尽管-O0,clang是否执行const替换?

时间:2015-06-23 12:09:21

标签: c clang

我查看了 21st Century C 一书中的一个例子:

// constfusion.c
//

#include <stdio.h>

int main() {
    int *var;
    int const **constptr = &var;
    int const fixed = 20;
    *constptr = &fixed;
    *var = 30;
    printf("fixed = %i, *var = %i\n", fixed, *var);
}

它应该输出fixed = 30, *var = 30来说明为什么将int **分配给const int **是错误的,而是输出fixed = 20, *var = 30

我正在使用clang -O0 constfusion.c -o constfusion进行编译。我的设置:

$ clang --version
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix

是编译器还是我?

0 个答案:

没有答案