Препроцессор ежевики в затмении - PullRequest
1 голос
/ 22 декабря 2010

У меня есть сомнения по поводу предварительной обработки ежевики.Я использую eclipse и поддерживаю кодовую базу, которая совместима как с сенсорными устройствами, так и с qwerty.Теперь хорошо известная проблема с eclipse заключается в том, что ... когда вы изменяете установленный компонент blackberry версии 4.5, он начинает показывать ошибки компиляции для отдельных частей API, даже если я помещаю их в блоки препроцессора.Обратите внимание, что тот же код не дает никаких ошибок в JDE при компиляции в 4.7 и 4.5.

Я следовал совету от http://smartfone -more.blogspot.com / 2010/05 / coding-for-multiple-blackberry-devices.html , который блокирует комментарии // # ifdef с двумя блоками //ifndef.

В основном

//#ifdef MY_FLAG
my logic
//endif

превращается в

//#ifndef
/*
//#endif
mylogic
//#ifndef
*/
//#endif

так что затмение игнорирует сенсорный код в 4.5 компонентах.

теперь у меня есть вопрос,

предположим, у меня есть блок препроцессора if-else, подобный этому:

//#ifdef MY_FLAG
my logic for touch
//#elseif
my logic for qwerty
//endif

Могу ли я переписать этот материал так:

//#ifndef MY_FLAG
/*
//#endif
my logic for touch
//#ifndef
*/
//#endif

//#ifndef MY_FLAG
my logic for qwerty
//#endif

, чтобы вместо 1 блока if-else теперь было 2 блока if.Будет ли из-за этого проблема с производительностью?В принципе, они одинаковы?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2010

Оператор препроцессора выполняется во время компиляции. Компиляция может занять немного больше времени (и мы говорим очень мало времени), но не будет никаких проблем с производительностью во время выполнения.

0 голосов
/ 22 декабря 2010

У вас на самом деле это работает? Не ваш 4.5 компилировался, но ваш 4.7+ сенсорный код компилировался и работал? Eclipse фактически создает файл (в /.preprocessed/), который представляет, что он должен делать, но полностью игнорирует директивы при компиляции ... в моем случае

Мне не удалось заставить это работать, используя любое из множества средств, размещенных в сети ...

Не должно быть так сложно, но эй, это Blackberry;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...