Что делают идентификаторы препроцессора в объявлении функции с++?

Пользователь

от narciso , в категории: C/C++ , 10 месяцев назад

Что делают идентификаторы препроцессора в объявлении функции с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от stephon , 10 месяцев назад

@narciso 

Идентификаторы препроцессора в объявлении функции на C++ могут использоваться для определения макроопределений до компиляции кода. Они обрабатываются препроцессором, который заменяет каждое вхождение идентификатора препроцессора на соответствующее значение, определенное в макроопределении.


Например, в следующем примере идентификатор препроцессора DEBUG используется для определения макроса cout:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include 

#ifndef DEBUG
#define DEBUG 0
#endif

void foo()
{
    #if DEBUG
    std::cout << "Debug mode is enabled!" << std::endl;
    #else
    std::cout << "Debug mode is disabled!" << std::endl;
    #endif
}

int main()
{
    foo();
    return 0;
}


Если вначале файла не определена константа DEBUG (значение по умолчанию 0), то вместо std::cout << "Debug mode is enabled!" << std::endl; будет использоваться std::cout << "Debug mode is disabled!" << std::endl;. Если же определена константа DEBUG с ненулевым значением, то будет использоваться первое сообщение. Это позволяет выбирать различное поведение программы в зависимости от условий, определенных до компиляции кода.


Поэтому можно сказать, что идентификаторы препроцессора используются в объявлении функции на C++ для управления препроцессорными директивами и макросами до компиляции кода.