C 语言头文件的偏航处理

一般来说,C 语言的头文件显然只有在编译源代码的时候才会被编译器读取并处理(当然这里不严谨,很早之前曾经还有过需要专门的预处理器的阶段),所以很少有什么工具要对它做什么事。

不过凡事有一般,那通常也就意味着会有二般,只不过概率会低一些。设想一个场景。假如写了一个新的语言,为了让能在 Windows 下为开发者提供直接使用 Windows 平台 API 的能力,你可能就不得不把 Windows.h 这个头文件拉出来,把其中的大量常量宏定义、结构体或者函数别名的宏定义等等解析出来,转换成你自己的语言的对应形式的声明。

好在对于这些“二般”的“偏航”需求,也有前人做了相关的工作的。

有个项目叫 unifdef,主页在这儿:https://dotat.at/prog/unifdef/。它称自己为“selectively remove C preprocessor conditionals”,GitHub 上的代码库地址则在 https://github.com/fanf2/unifdef

无独有偶,还有另一个项目,使用 Python 语言写就,主页设计得还要更美观些,叫 pcpp,主页在 https://pypi.org/project/pcpp/。当然在 GitHub 上也有自己的一席之地,在这儿:https://github.com/ned14/pcpp

有需要的小伙伴们自取所需吧。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注