ysyx:0005:Ccode2binary

Jackcui NJU Loser

[ANNONCEMENT]

ysyx的课程规范实则是不鼓励分享的,发在这里其实只是做一个类似个人存档的东西或者跟没参加的同学分享,再加上我比较菜,所以参加这个课程的同学慎入。


预处理

=文本粘贴
图片.png
图片.png

编译

图片.png

词法分析

图片.png

注意回忆和SICP的解释器是非常相似的。

语法分析

图片.png

SICP同上

语义分析

图片.png

SICP同上

中间代码生成

图片.png

优化

图片.png

目标代码生成

图片.png

binary
汇编

图片.png

链接

图片.png
动态链接机制??

执行

图片.png
#####
通过日志观察工具的行为

1
clang - fsyntax-only -Xclang -ast-dump a.c

C语言标准有一些是符合一定范围即可

  • 有一些 未指定行为(Unspecified behaviour)
    在认可情况下都可以随便选择。
  • 还有一些 事先定义行为(Implementation-defined behaviour)
    在一定环境下,选择必须是一定的。
  • 未定义行为(Undefined behaviour)
    完全不符合标准,甚至都不能用对错来形容。

图片.png
图片.png

2个经典问题

  • 2147483648 问题
  • char 的类型提升问题
  • Post title:ysyx:0005:Ccode2binary
  • Post author:Jackcui
  • Create time:2023-07-06 21:19:42
  • Post link:https://jackcuii.github.io/2023/07/06/ysyx0005/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments