我们说我有以下代码
int i;
int j;
string s;
string t;
是否有任何预处理器可以将其转换为类似的东西?
int i;
int j;
string s;
string t;
void print() {
cout << i;
cout << j;
cout << s;
cout << t;
}
看起来像这样的东西会很棒。
#section print
int i;
int j;
string s;
string t;
#endsection
使用上面的代码,我将不得不编写另一个处理它的预处理器,但我不知道如何。
答案 0 :(得分:3)
否强>
预处理程序指令在预处理程序中定义,您无法添加新处理程序。
但是您可以轻松编写一些可以进行此类更改的脚本。 (Per / Python / Ruby,无论如何)
在每次编译之前,只需要减去手动运行该脚本。
答案 1 :(得分:3)
这不是我所说的&#34;伟大的风格&#34;但是我在紧缩中使用的技术,特别是在受限制的系统中,称为XMacro
基本上,制作一个扩展名为.xmacro
的文件(我将使用MyXMacro.xmacro
),然后填写如下数据:
XMACRO_INT(i)
XMACRO_INT(j)
XMACRO_STRING(s)
XMACRO_STRING(t)
#undef XMACRO_INT
#undef XMACRO_STRING
然后在你的代码中你写下这样的东西:
#define XMACRO_INT(x) int x ;
#define XMACRO_STRING(x) std::string x ;
#include "MyXMacro.xmacro"
void print() {
# define XMACRO_INT(x) std::cout << x ;
# define XMACRO_STRING(x) std::cout << x ;
# include "MyXMacro.xmacro"
}
但在某个时刻,编写脚本并将其合并到您的构建中是一个更好的选择。