Я использую #define ENABLE_FLAG
внутри #define ENABLE_FLAG
C++ и, соответственно, пытается включить раздел кода, в то время как ENABLE_FLAG
определен.
Мой вопрос: конкретный набор кода внутри
#ifdef ENABLE_FLAG
....setofcode....
#endif
оценивается во время выполнения через #ifdef
проверки или компилятор сам видит ENABLE_FLAG
во время компиляции и включает в себя код?
#ifdef
и все те другие вещи, которые вы видите с #
как первый символ в строке, - это директивы препроцессора C. Они обрабатываются даже до собственно компиляции. Таким образом, не будет принято решение во время исполнения - блокированный/отключенный блок кода определяется в самой ранней части процесса сборки.
Параметры #define
- это время компиляции и сохраняются во время выполнения.
#