在编译时执行 C 宏函数

Execute C Macro Function At Compile Time

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

C 中的宏严格来说是一种文本替换工具。预处理器的输出是一个预处理文件。

所以不,你不能像预处理器那样执行额外的任务。

如果你真的想在编译时执行某些任务,那就是 make 的目的。

是;编号

在编译时执行,但除了将文本混合到代码中之外,您可以直接使用它们做的事情不多。

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

然后那个脚本可以做一些事情。

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

我想这很明显,但是使用 Ruby、Python 或 shell 编写一些宏处理脚本怎么样?