在编译时执行C宏功能

时间:2016-07-08 20:29:04

标签: c macros c-preprocessor compile-time

是否可以在编译时运行c宏函数。 例如,每次编译代码时在文件中写一些东西。

2 个答案:

答案 0 :(得分:3)

是;否。

执行在编译时执行,但除了将代码混合到代码中之外,您无法直接使用它们。

现在,采用unix开创的software tools方法(毕竟)你可以有条件地使用#warning生成输出,然后通过管道用一些脚本来捕获它。

那个脚本可以做点什么。

但是,你可能不想这样做。一旦你运行了一个脚本,你就可以让那个脚本做你想做的任何事情。此外,#error#warning不会对错误或警告文本进行宏扩展,因此将它们用于I / O会有问题。

我想这很明显,但是如何使用Ruby,Python或shell来编写一些宏处理脚本呢?

答案 1 :(得分:2)

C中的宏是严格意义上的文本替换工具。预处理器的输出是预处理文件。

所以不,你不能从预处理器那里做其他任务。

如果你真的想在编译时执行某些任务,那就是<configuration>的用途。