我很困惑为什么在#define
以下 if 语句中使用以下宏时未按预期进行评估:
#define kOffsetX 2048.0
#define kPositionX (screenSize.width * (kOffsetX/2048.0))-10.0
CGSize screenSize = [CCDirector sharedDirector].winSize;
float potentialPosition = 486.86f;
float playersFieldOffset = 1.0;
if ((potentialPosition - kPositionX) * playersFieldOffset > 0.0) {
请注意,kPositionX 的计算结果为 470.0。当 486-470 明显大于零时,if 语句的计算结果为 FALSE。但是,如果我在 kPositionX 周围加上括号,则 if 语句正确地计算为 TRUE。
为什么会这样?这是使用 a 的不当方式#define
吗?如果是这样,我该怎么办?