是否可以在编译时运行c宏函数。 例如,每次编译代码时在文件中写一些东西。
答案 0 :(得分:3)
宏执行在编译时执行,但除了将代码混合到代码中之外,您无法直接使用它们。
现在,采用unix开创的software tools方法(毕竟)你可以有条件地使用#warning
生成输出,然后通过管道用一些脚本来捕获它。
那个脚本可以做点什么。
但是,你可能不想这样做。一旦你运行了一个脚本,你就可以让那个脚本做你想做的任何事情。此外,#error
和#warning
不会对错误或警告文本进行宏扩展,因此将它们用于I / O会有问题。
我想这很明显,但是如何使用Ruby,Python或shell来编写一些宏处理脚本呢?
答案 1 :(得分:2)
C中的宏是严格意义上的文本替换工具。预处理器的输出是预处理文件。
所以不,你不能从预处理器那里做其他任务。
如果你真的想在编译时执行某些任务,那就是<configuration>
的用途。