在编译时执行 C 宏函数
Execute C Macro Function At Compile Time
是否可以在编译时运行一个c宏函数。
例如每次编译代码时在文件中写一些东西。
C 中的宏严格来说是一种文本替换工具。预处理器的输出是一个预处理文件。
所以不,你不能像预处理器那样执行额外的任务。
如果你真的想在编译时执行某些任务,那就是 make
的目的。
是;编号
宏 在编译时执行,但除了将文本混合到代码中之外,您可以直接使用它们做的事情不多。
现在,采用 unix 开创的 software tools 方法(毕竟),您可以使用 #warning
有条件地生成输出,然后通过管道使用一些脚本捕获它。
然后那个脚本可以做一些事情。
但是,您可能不想那样做。一旦你成为 运行 脚本,你就可以让该脚本做任何你想做的事。此外,#error
和 #warning
不会宏扩展错误或警告文本,因此将它们用于 I/O 是有问题的。
我想这很明显,但是使用 Ruby、Python 或 shell 编写一些宏处理脚本怎么样?
是否可以在编译时运行一个c宏函数。 例如每次编译代码时在文件中写一些东西。
C 中的宏严格来说是一种文本替换工具。预处理器的输出是一个预处理文件。
所以不,你不能像预处理器那样执行额外的任务。
如果你真的想在编译时执行某些任务,那就是 make
的目的。
是;编号
宏 在编译时执行,但除了将文本混合到代码中之外,您可以直接使用它们做的事情不多。
现在,采用 unix 开创的 software tools 方法(毕竟),您可以使用 #warning
有条件地生成输出,然后通过管道使用一些脚本捕获它。
然后那个脚本可以做一些事情。
但是,您可能不想那样做。一旦你成为 运行 脚本,你就可以让该脚本做任何你想做的事。此外,#error
和 #warning
不会宏扩展错误或警告文本,因此将它们用于 I/O 是有问题的。
我想这很明显,但是使用 Ruby、Python 或 shell 编写一些宏处理脚本怎么样?