Я знакомлюсь с научным кодексом гидродинамики. Код почти всегда использует директивы препроцессора, например.
#ifdef PARTICLES
int nghost = 5
#else
int nghost = 4
#endif
вместо более простых флагов C, например,
int nghost = 4;
if( particlesFlag ) { nghost = 5; }
Недостатком флагов препроцессора является то, что (в этой среде) он требует конфигурации (с созданием заголовочного файла) для каждой установки проблемы перед каждой сборкой, тогда как использование флагов c-кода потребует просто перекомпиляции.
Каковы преимущества этого подхода?
Кажется, что любое повышение эффективности было бы невероятно небольшим --- тем более, что этот код (например) запускается только один раз при инициализации программы, в то время как вся реальная работа выполняется в циклах на разных процессорах и т. д.