如何在 C 中定义宏的宏?

How to define macro of macros in C?

是否可以在C中定义宏的宏?通常,宏定义字符串的主体包含语言的运算符。

但是有时需要在宏的主体中描述条件宏,就像在宏汇编程序中所做的那样。我该怎么做?

(1) 您可以定义一个宏的宏,就像在包含另一个宏的宏中一样。

(2) 但是,您不能 定义像#define INCLUDE #define STDH include <stdio.h>.

这样的宏的宏

这里提供一个非常简单的基于宏的Hello World程序(针对第一种情况)。这里,MAIN 是包含宏 HELLOWORLD.

的宏
#include <stdio.h>
#define HELLOWORLD printf("Hello, World!") // Macro
#define MAIN int main() { HELLOWORLD; return 0; } // Macro containing HELLOWORLD macro
MAIN

被预处理为

#include <stdio.h>
int main() {
    HELLOWORLD;
    return 0;
}

然后预处理为

#include <stdio.h>
int main() {
    printf("Hello, World!");
    return 0;
}