Возможный дубликат:
Разница между макросом и препроцессором
У меня есть вопрос о макросах и директивах препроцессора в C ++, в чем разница между ними? Кажется, они более или менее одинаковы? Я пытался посмотреть в Интернете, но до сих пор не могу понять, кто-нибудь может помочь?
Директива препроцессора — это любая из функций языка, которая начинается с #
например, #if
, #pragma
, #include
, Они полностью обрабатываются препроцессором как отдельная стадия, прежде чем включится соответствующий компилятор.
Макрос — это все, что определяется #define
; это всего лишь один из видов директив препроцессора.
Макрос — это подмножество директив препроцессора:
#define X
Это макрос а также директива препроцессора.
#pragma once
Это просто директива препроцессора.
Макросы начинаются с #define
и определить элементы, которые будут расширены во время предварительной обработки.