多行C宏

时间:2014-07-17 08:15:19

标签: c macros post-processing

我正在使用CPP扩展基于多个标头的测试文件。预处理文件由其他脚本使用。

当我使用 EXPAND_SPEC 定义时。我希望CPP将以下行放入文件中。

  

A B
  C D
  E F

所以我尝试使用以下定义

  

#define EXPAND_SPEC \
   A B \
   C D \
   E F

但是,CPP以下列方式取代了这个定义

  

A B C B E F

如何使用define获取换行符。

1 个答案:

答案 0 :(得分:0)

您的要求是不可能的。

您无法使用C / C ++预处理器创建新行。

唯一的解决方案是使用不同的宏处理器或让宏嵌入一个特殊字符(或字符串),可以使用文本操作实用程序(如SED或AWK)替换为新行。两者都是cygwin的一部分。