Мне непонятно, когда используются директивы компилятора, какие из приведенных ниже двух фрагментов кода являются правильными/предпочтительными и почему. Похоже, что большинство разработчиков и проекты с открытым исходным кодом, которые я видел, используют первый, но я видел, что второй часто используется также.
#ifdef DEBUG
[self doSomethingOnlyWhenDebugging];
#endif
СРАВНЕНИЯ
#if DEBUG
[self doSomethingOnlyWhenDebugging];
#endif
Какой из приведенных выше фрагментов кода предпочтительнее для запуска кода только при отладке и почему? Я предполагаю, что первая будет выполняться, если DEBUG определяется как TRUE или FALSE, где вторая будет работать только в том случае, если DEBUG определен и установлен в TRUE. Это правильно?