专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
今天看啥  ›  专栏  ›  嵌入式微处理器

看这个C语言输出2还是3?

嵌入式微处理器  · 公众号  ·  · 2024-12-13 12:00
    

文章预览

▌ 今天群里的激烈讨论代码 # include   "stdio.h" # include   "stdio.h" int   main () {    int  i =  0 ;    int  value = ++i+i++;    printf ( "%d\n" , value);    return   0 ; } 我们先从正常的逻辑讨论下这个问题 这里需要考虑下i运算符的优先级 然后,并没有什么用处 ++ 的优先级高于 + ++ 和 + 的优先级高于 = 那++i 和 i++ 都被执行了一次 1 + 2 = 3 . ▌ 我写了一个脚本,用来转换并执行汇编代码的 # 1125.sh #gcc -O0 -S 1125.c as -o 1125.o 1125.s ld -m elf_x86_64 -dynamic-linker /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2  "1125.o"  /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o -lc -o  "1125_64" sudo chmod 777 1125_64 ./1125_64 在生成的汇编代码中,我们可以修改汇编,然后再执行看结果 .file "1125.c" .text .se ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览