По отзывам некоторых жителей этого ресурса, установил посмотреть Code::Block
.
Никак не пойму, как бороться с подсветкой между ifdef
?
Соответственно там серый текст, независимо от того что объявлено, а что нет.. это крайне не удобно.
пример на котором такая картина:
libbuild.h
:
#if ( \
defined(_WIN32) || defined(__WIN32__) || defined(_Windows) || \
defined(_WIN64) || defined(__WIN64__) || \
defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__))
# define OS_WIN 1
#endif
test.c
#include "libbuild.h"
#if defined(OS_WIN)
static int aaa(int i) { return (i + 1); }
#else
static long aaa(long i) { return (i + 1); }
#endif
при этом подсвечен всегда код long aaa(..)
.
Собирается естественно все правильно, а вот смотреть затруднительно.
Сборка при этом проходит под WIN32.
вот как это выглядит:
Есть решение?
Подсветка дефайнов зависит от двух вещей:
Каждая тема имеет настройку для элементов в 2-х состояниях: активном и неактивном. Возможно, в используемой вами теме неудачно подобраны цвета для неактивного состояния, а возможно у вас не стоят галочки, как на первом скриншоте.
Но есть один важный момент: для раскраски синтаксиса текущая версия C:B не учитывает дефайны в инклудах. Воспринимаются только те дефайны, которые объявлены в этом же файле или в настройках проекта (Build Options - Compiler Settings - #defines).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Взято из кода движка OGRE3d, компилятор выдает ошибку: