【发布时间】:2010-12-22 13:59:16
【问题描述】:
我对黑莓预处理有疑问。我正在使用 eclipse 并维护一个与基于触摸的设备和 qwerty 设备兼容的代码库。 现在 Eclipse 的一个众所周知的问题是......当您更改 4.5 的黑莓安装组件时,它开始显示触摸特定 API 部分的编译错误,即使我将它们放在预处理器块中也是如此。请注意,在 4.7 和 4.5 下编译时,相同的代码在 JDE 中不会出现任何错误。
我遵循了来自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
以便 Eclipse 忽略 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
所以现在有 2 个 if 块,而不是 1 个 if-else 块。是否会因此产生任何性能问题?基本上,它们是一样的吗?
【问题讨论】: