ios: Operator '?:' has lower precedence than '*'; '*' will be evaluated first

1.项目中用宏的时候,遇到如下警告

 Operator '?:' has lower precedence than '*'; '*' will be evaluated first

2.错误原因

*操作符的优先级比 ?符号优先级低,会先*运算,结果也许就并不是自己需要的

类似此错误一般都与优先级有关

3.解决方案(示例)

错误定义:#define kItemH UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad?140:80

正确定义:

#define kItemH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad?140:80)

ps:根据需求用()来保证优先级即可

 

posted @ 2014-04-18 11:58  折半  阅读(1166)  评论(0)    收藏  举报