And*_*owl 0 c macros c-preprocessor
我有类似以下内容,我不满意:
#define BEGIN {
#define END_1 };
#define END_2 END_1 };
#define END_3 END_2 };
// ... (possibly more of these) ...
#define END(x) END_ ## x
int main()
{
BEGIN
BEGIN
BEGIN
END(3) // <- I don't want to pass the 3 here
BEGIN
BEGIN
END(2) // <- I don't want to pass the 2 here
}
Run Code Online (Sandbox Code Playgroud)
我想重写BEGIN和/或END后者的定义,以便后者不需要进行论证.
我相信这不可能做到,但我对C预处理器不是很有经验.是否至少有任何方法可以比我发布的示例更接近我的目标?