c++预处理器是如何工作的

How does C++ preprocessor work?

本文关键字:工作 何工作 预处理 处理器 c++      更新时间:2023-10-16

我正在阅读《c++入门》第5版,我读到预处理器是一个在c++编译器之前运行的程序,它用适当的内容替换#include, #define和#ifdefs等,然后将控制权转移给编译器。

但是我在cl.exe(微软编译器)中遇到了一种方法来查看直接保存到文件的预处理器输出。我做到了,当我打开预处理器输出文件时,我很惊讶,因为我没有找到我所期望的!

它们非常大,并且包含看起来像混淆的代码!

请解释c++的预处理器在实际中是做什么的

完全可以像处理C或c++那样预处理Java。就像这样:

gcc -E myjava.java > myjava.preprocesses.java

然后你可以随心所欲地使用宏扩展,#if等。当然,它也有一个缺点,那就是编译需要一个进一步的工具。

您可以推出一个与本机C/c++代码绑定的JNI库,该库包含所有必需的宏。