Clang是一个编译器前端,其最重要的操作与诊断相关。诊断需要精确的源代码位置信息。让我们探索Clang为这些操作提供的基本类。 Clang作为一个编译器,操作文本文件(程序),而定位程序中的特定位置是最常请求的操作。典型的Clang错误报告,Clang为该程序生成的错误消息如下: $ $ lldb \ /llvm-project/install/clang ... (lldb) p sizeof(clang::SourceLocation) (unsigned long) 4 (lldb) 图4.13:在调试器下确定clang::SourceLocation的大小 信息是通过一个无符号长整数编码,这是如何做到的呢?这个数字仅仅作为文本文件中位置的标识符。