Как определить макрос макросов в C? - PullRequest
0 голосов
/ 02 июня 2018

Можно ли определить макрос макросов в C?Обычно тело строки макроопределения содержит операторы языка.

Однако иногда возникает необходимость описать условные макросы в теле макросов, как это делается в макросе-ассемблере.Как я могу это сделать?

1 Ответ

0 голосов

(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;
}
...