C ++预处理器如何工作?

时间:2013-04-27 15:43:13

标签: c++ c-preprocessor

我正在阅读“C ++ Primer”第5版,我读到预处理器是一个在C ++编译器之前运行的程序,用适当的内容替换#include,#define和#ifdefs等,然后转移控制转到编译器。

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

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

请解释一下C ++预处理器的实际作用。

2 个答案:

答案 0 :(得分:1)

完全可以像处理C或C ++一样预处理Java。只需使用这样的东西:

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

然后你可以使用宏扩展,#if等来表达你的内心。当然,它确实有一个缺点,即编译需要进一步的工具。

答案 1 :(得分:-2)

您可以推出一个与您的本机C / C ++代码相关联的JNI库,该代码具有您所有必需的宏。