深入研究Clang(六) Clang Lexer代码阅读笔记之Preprocesser

本文详细探讨了Clang库中的Preprocessor类,它是C、C++和Objective C语言预处理的核心。Preprocessor类包含了解析预处理器指令、管理宏定义和头文件包含等功能。文章介绍了Preprocessor的成员变量,如DiagnosticsEngine、LangOptions、TargetInfo等,以及用于内建宏的IdentifierInfo指针。此外,还讨论了类中使用位域节省空间的优化技巧,以及如何在const成员函数中修改状态的mutable关键字应用。
摘要由CSDN通过智能技术生成
clang/include/clang/Lex/Preprocesser.h
这个文件是包含clang::Preprocesser类的定义的头文件。它是类C语言(C、C++、Object C)的预处理的头文件。也就是说,类C语言的预处理都会用到此处的代码。
00082 /// \brief Context in which macro name is used.
00083 enum MacroUse {
00084   MU_Other  = 0,  // other than #define or #undef
00085   MU_Define = 1,  // macro name specified in #define
00086   MU_Undef  = 2   // macro name specified in #undef
00087 };
这个枚举很简单,就是通过枚举值来确定到底使用了哪些宏。除了define和undef之外,其他的都分类到MU_Other类别下边了。
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值